在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值设置无效