使用Spring RestTemplate执行HTTP POST时,出现java.net.socketException:连接重置
但是,当我在Java 8上执行相同的代码时,相同的代码可以正常工作。我没有发现与此相关的任何类似问题。
有人可以指出我可能做错的任何事情吗?我什至尝试使用-Dhttps.protocols = TLSv1.1,TLSv1.2之类的命令行参数
到目前为止没有任何工作。任何援助将不胜感激
这是我的代码:
String xmlResponse = null;
if (restTemplate == null) {
CloseableHttpClient httpClient =
HttpClients.custom().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
HttpComponentsClientHttpRequestFactory requestFactory = new
HttpComponentsClientHttpRequestFactory();
requestFactory.setHttpClient(httpClient);
restTemplate = new RestTemplate(requestFactory);
}
HttpHeaders rqHeaders = new HttpHeaders();
rqHeaders.setContentType(MediaType.TEXT_XML);
HttpEntity<String> createAppRequest = new HttpEntity<>(xmlRequest, rqHeaders);
ResponseEntity<String> responseEntity = restTemplate.exchange(datasafeURL, HttpMethod.POST, createAppRequest, String.class);
Run Code Online (Sandbox Code Playgroud)
结果:
2017-06-29 14:23:58.278 INFO 1125 --- [nio-9902-exec-3] o.apache.http.impl.execchain.RetryExec : I/O exception (java.net.SocketException) caught when processing request to {s}->https://pcu.users.com:443: Connection reset
2017-06-29 14:23:58.278 INFO 1125 --- [nio-9902-exec-3] …Run Code Online (Sandbox Code Playgroud)