I am currently developing the Image Map API among the Line APIs. We are sending the request message below. Only the same 400 error is occurring. Can anyone tell me what kind of error it is? thank you
API guide url :
my code:
URL urlPath = null;
HttpURLConnection conn = null;
OutputStream outputStream = null;
BufferedReader in = null;
BufferedWriter bw = null;
JSONObject data = null;
JSONArray areasArr = null;
JSONObject boundsObj = null;
JSONObject actionObj = null;
JSONObject sizeObj = null;
JSONObject dataObj = null;
String[] richMenuText = { "a", "b", "c", "d", "e", "f" };
String[] displayTextArr = null;
int[] yLatitudeArr = { 0, 0, 0, 521, 521, 521 };
int[] xLongitudeArr = { 0, 346, 692, 0, 346, 692 };
int[] widthArr = { 346, 346, 347, 346, 346, 347 };
int height = 520;
String richMenuId = null;
String lang = null;
try {
urlPath = new URL(url + "message/push");
conn = (HttpURLConnection) urlPath.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Bearer " + token);
// ========= Start create JSON body ===========
lang = "ko";
sizeObj = new JSONObject();
sizeObj.put("width", 800).put("height", 540);
JSONObject baseSize = new JSONObject();
baseSize.put("width", 1040)
.put("height", 1040);
data = new JSONObject();
data.put("type", "imagemap")
.put("baseUrl", "/")
.put("altText", "test")
.put("baseSize", baseSize);
areasArr = new JSONArray();
for (int i = 0; i < 6; i++) {
boundsObj = new JSONObject();
boundsObj.put("y", yLatitudeArr[i]).put("x", xLongitudeArr[i]).put("width", widthArr[i]).put("height", height);
System.out.println(displayTextArr);
actionObj = new JSONObject();
actionObj.put("type", "message")
.put("text", richMenuText[i]);
dataObj = new JSONObject();
actionObj.put("area", boundsObj);
areasArr.put(actionObj);
}
JSONObject area = new JSONObject();
area.put("x", 0);
area.put("y", 0);
area.put("width", 1040);
area.put("height", 585);
JSONObject externalLink = new JSONObject();
externalLink.put("linkUri", ".html");
externalLink.put("label", "See More");
JSONObject video = new JSONObject();
video.put("originalContentUrl", ";);
video.put("previewImageUrl", ";);
video.put("area", area);
video.put("externalLink", externalLink);
data.put("actions", areasArr);
log.debug("data: "+ data);
// ========= end create JSON body =============
// ======= response Read =======
conn.setDoOutput(true);
outputStream = conn.getOutputStream();
bw = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
bw.write(data.toString());
bw.flush();
bw.close();
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
=============== request ===============
API name: Imagemap message
url:
header: {"Content-Type": "application/json", "Authorization", "Bearer apikey"}
body:
{
"baseSize": {
"width": 1040,
"height": 1040
},
"baseUrl": "/",
"altText": "test",
"type": "imagemap",
"actions": [
{
"area": {
"x": 0,
"width": 346,
"y": 0,
"height": 520
},
"text": "a",
"type": "message"
},
{
"area": {
"x": 346,
"width": 346,
"y": 0,
"height": 520
},
"text": "b",
"type": "message"
},
{
"area": {
"x": 692,
"width": 347,
"y": 0,
"height": 520
},
"text": "c",
"type": "message"
},
{
"area": {
"x": 0,
"width": 346,
"y": 521,
"height": 520
},
"text": "d",
"type": "message"
},
{
"area": {
"x": 346,
"width": 346,
"y": 521,
"height": 520
},
"text": "e",
"type": "message"
},
{
"area": {
"x": 692,
"width": 347,
"y": 521,
"height": 520
},
"text": "f",
"type": "message"
}
]
}
The error message is as follows:
java.io.IOException: Server returned HTTP response code: 400 for URL:
at sun.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1900)
at sun.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
at sun.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:268)
at line.LineAPI.imageMapMesage(LineAPI.java:412)
at telegrambot.telegramController.test(telegramController.java:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:854)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:765)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at egovframework.rte.ptl.mvc.filter.HTMLTagFilter.doFilter(HTMLTagFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:388)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:936)
at org.apache.tomcat.util.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
at org.apache.tomcat.util.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.lang.Thread.run(Thread.java:748)