RestTemplate -- 默认超时值

2022-09-01 03:04:10

使用Spring时的默认超时值是多少?RestTemplate

例如,我正在调用这样的Web服务:

RestTemplate restTemplate = new RestTemplate();
String response = restTemplate.getForObject("http://webservice.com/item/3455", String.class);

是否有任何内置超时值 ?我不打算更改超时值,但是,我想确保每个请求都有一个合理的超时。RestTemplate


答案 1

要明确回答问题...

默认超时是无限的。

默认情况下,RestTemplate使用SimpleClientHttpRequestFactory,而后者又使用HttpURLConnection。

默认情况下,HttpURLConnection的超时值为0 - 即无限,除非它是由以下属性设置的:

-Dsun.net.client.defaultConnectTimeout=TimeoutInMiliSec 
-Dsun.net.client.defaultReadTimeout=TimeoutInMiliSec 

答案 2

我认为你可以使用SimpleClientHttpRequestFactory作为超时参数。SimpleClientHttpRequestFactory 的实例可以通过构造函数或 setter 方法设置为 rest 模板。

默认情况下,RestTemplate使用SimpleClientHttpRequestFactory,因此您可以直接将值设置为restTemplate。


推荐