在Spring Rest Template中设置超时

应用程序使用Spring rest模板来调用web服务,我正在使用
restTemplate.exchage(url)来调用webservice。 目前我们没有为此webservice调用传递任何超时值,如何为Spring Rest模板设置超时值。

您可以使用类似于以下的代码来设置连接超时:

RestTemplate restTemplate = new RestTemplate(); ((SimpleClientHttpRequestFactory)restTemplate.getRequestFactory()).setConnectTimeout(2000); 

如果您希望设置读取超时,则可以使用类似以下的代码:

 ((SimpleClientHttpRequestFactory)restTemplate.getRequestFactory()).setReadTimeout(2000); 

这里的时间以毫秒为单位。 有关详细信息,请访问文档页面 。

我基于这些线程使用这种方法

 int DEFAULT_TIMEOUT = 5000; RequestConfig requestConfig = RequestConfig.custom() .setConnectTimeout(DEFAULT_TIMEOUT) .setConnectionRequestTimeout(DEFAULT_TIMEOUT) .setSocketTimeout(DEFAULT_TIMEOUT) .build(); 

CloseableHttpClient httpClient = HttpClients.custom() .setDefaultRequestConfig(requestConfig) .build();

Spring RestTemplate连接超时不起作用

Java:HttpClient 4.1.2:ConnectionTimeout,SocketTimeout值设置无效