'How to solve "I/O error on POST request" from restTemplate
higuys!
I have a problem with restTemplate right now. There are two requests while using this restTemplate. First one is simple like login. Other one(the problem) is sending quite long text with post body.
If I send the request on Postman, it works well. I think the length of string might be the problem, but I'm not sure.
Request Parameter is
{
"name" : "test",
"age" : 28,
"gender" : 2,
"type" : 1,
"store" : "test2",
"imgLen" : 2876,
"img" : "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"
}
Source code is
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setConnectTimeout(timeout);
factory.setReadTimeout(timeout);
RestTemplate restTemplate = new RestTemplate(factory);
//body
MultiValueMap<String, String> reqBody = new LinkedMultiValueMap<>();
int i=0;
if(reqParam != null) {
for (Object key : reqParam.keySet()) {
i++;
String keyString = key.toString();
reqBody.add(keyString, reqParam.getString(keyString));
}
}
//header
HttpHeaders header = new HttpHeaders();
header.setContentType(MediaType.APPLICATION_JSON);
if(reqHeader != null) {
for (Object key : reqHeader.keySet()) {
String keyString = key.toString();
String value = reqHeader.getString(keyString);
header.set(keyString, value);
}
}
HttpEntity<?> entity = new HttpEntity<>(reqBody, header);
UriComponents uri = UriComponentsBuilder.fromHttpUrl(host+reqUri).build();
log.append("\n---------[ BI-API -> Face Manager API ]-------------------------------------------------------------");
log.append("\nRequest URL : ").append(uri);
log.append("\nRequest URI : ").append(reqUri);
log.append("\nmethod : ").append(method);
log.append("\nRequest Body : ").append(ObjectUtil.getAllParameters(reqParam));
// ResponseEntity<Map> resultMap = restTemplate.exchange(uri.toString(), HttpMethod.POST, entity, Map.class);
ResponseEntity<Map> resultMap = restTemplate.postForEntity(uri.toString(), entity, Map.class);
The error is
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://{ip}:{port}/face/emp": Connection reset; nested exception is java.net.SocketException: Connection reset
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:785)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:711)
at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:468)
at com.lguplus.bi.api.faceMgr.FaceMgrApi.callAPI(FaceMgrApi.java:116)
at com.lguplus.bi.api.service.user.UserService.sendFaceInfo(UserService.java:549)
at com.lguplus.bi.api.controller.user.UserController.requestCreateUser(UserController.java:179)
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:197)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1060)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:962)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.lguplus.bi.api.filter.RequestFilter.doFilter(RequestFilter.java:201)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:210)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at org.apache.http.impl.conn.LoggingInputStream.read(LoggingInputStream.java:87)
at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
at org.springframework.http.client.HttpComponentsClientHttpRequest.executeInternal(HttpComponentsClientHttpRequest.java:87)
at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)
at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:776)
... 58 more
The log is
021-05-21 16:10:05 [DEBUG] [MainClientExec.java]execute(255) : Executing request POST /face/emp HTTP/1.1
2021-05-21 16:10:05 [DEBUG] [MainClientExec.java]execute(260) : Target auth state: UNCHALLENGED
2021-05-21 16:10:05 [DEBUG] [MainClientExec.java]execute(266) : Proxy auth state: UNCHALLENGED
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(124) : http-outgoing-0 >> POST /face/emp HTTP/1.1
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Accept: application/json, application/*+json
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Content-Type: application/json
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> api-key: eV1GXF5neW0fd2NlMDkzNDk0MGludGVsbGk=
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Accept-Charset: utf-8
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Content-Length: 2973
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Host: 172.16.2.36:5214
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Connection: Keep-Alive
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> User-Agent: Apache-HttpClient/4.5 (Java/1.8.0_191)
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Accept-Encoding: gzip,deflate
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "POST /face/emp HTTP/1.1[\r][\n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Accept: application/json, application/*+json[\r][\n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Content-Type: application/json[\r][\n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "api-key: eV1GXF5neW0fd2NlMDkzNDk0MGludGVsbGk=[\r][\n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Accept-Charset: utf-8[\r][\n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Content-Length: 2973[\r][\n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Host: 172.16.2.36:5214[\r][\n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Connection: Keep-Alive[\r][\n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "User-Agent: Apache-HttpClient/4.5 (Java/1.8.0_191)[\r][\n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Accept-Encoding: gzip,deflate[\r][\n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "[\r][\n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(86) : http-outgoing-0 >> "{"id":["test"],"age":["28"],"gender":["1"],"store":["[0xea][0xb0][0x95][0xeb][0x82][0xa8][0xeb][0xa7][0xa4][0xec][0x9e][0xa5]"],"imgLen":["2816"],"img":["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"]}"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(86) : http-outgoing-0 << "[read] I/O error: Connection reset"
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]close(79) : http-outgoing-0: Close connection
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]shutdown(87) : http-outgoing-0: Shutdown connection
2021-05-21 16:10:05 [DEBUG] [ConnectionHolder.java]abortConnection(128) : Connection discarded
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]close(79) : http-outgoing-0: Close connection
2021-05-21 16:10:05 [DEBUG] [PoolingHttpClientConnectionManager.java]releaseConnection(320) : Connection released: [id: 0][route: {}->http://ip:5214[total kept alive: 0; route allocated: 0 of 2; total allocated: 0 of 20]
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://ip:5214/face/emp": Connection reset; nested exception is java.net.SocketException: Connection reset
2021-05-21 16:10:05 [DEBUG] [AbstractMessageConverterMethodProcessor.java]writeWithMessageConverters(268) : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/json, application/*+json]
2021-05-21 16:10:05 [DEBUG] [LogFormatUtils.java]traceDebug(91) : Writing [{}]
How can I solve this problem?
Thank you!
Solution 1:[1]
Hi Julia This quite feels like the protocol issue. The AWS is fully TLS 1.2 or higher supporting, but the client is not. The Rest Template if not configured otherwise, will start negotiation with TLS 1.0. You have to forcefully make the client to connect only with 1.2 or 1.3 protocol stacks.
SSLContext context = SSLContext.getInstance("TLSv1.2");
context.init(null, null, null);
CloseableHttpClient httpClient = HttpClientBuilder.create().setSSLContext(context)
.build();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
RestTemplate restTemplate = new RestTemplate(factory);
Solution 2:[2]
I/O error on POST request for "http://{ip}:{port}/face/emp"
It seems you do not set a valid host:port
Check your host and reqUri
UriComponents uri = UriComponentsBuilder.fromHttpUrl(host+reqUri).build();
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Zaur |
| Solution 2 | Yang Zhou |
