我在使用带有RestTemplate交换方法的REST API时遇到问题:
我尝试了其他一些公共API,并且使用相同的代码(只是更改了URL),所以我认为这不是我的代码有问题,但可能是网络代理或其他问题。
错误文字:
org.springframework.web.client.ResourceAccessException: I/O error on POST request for : Connection timed out: connect; nested exception is java.net.ConnectException: Connection timed out: connect
RestTemplate交换呼叫:
ResponseEntity<FooDto> reponseEntity = restTemplate.exchange(restUrl, HttpMethod.POST, httpEntity, FooDto.class);
答案 0 :(得分:0)
此处定义其余模板的方式至关重要。您需要设置连接超时并读取超时。
将它们优化到不会降低应用程序响应速度的水平非常重要。
SimpleClientHttpRequestFactory clientHttpRequestFactory = new SimpleClientHttpRequestFactory();
// Connect timeout: time is in milliseconds
clientHttpRequestFactory.setConnectTimeout(3000);
// Read timeout: time is in milliseconds
clientHttpRequestFactory.setReadTimeout(3000);
RestTemplate template = new RestTemplate(clientHttpRequestFactory);