为 RestTemplate 设置读取超时
Setting a read timeout for RestTemplate
我正在使用 Spring RestTemplate 从我的应用程序向不同的 REST 端点发出简单的 POST 请求。目前我在 Spring 配置文件中设置了 readTimout,如下所示:
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<constructor-arg>
<bean class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
<property name="readTimeout" value="10000" />
<property name="connectTimeout" value="10000"/>
</bean>
</constructor-arg>
</bean>
最近我的任务是根据每个请求动态设置 readTimout
我想我每次发出 POST 请求时都必须将一个新的 RequestFactory 注入到 restTemplate 中,并设置新的超时值,但这是实现此目的的可接受方式吗?有没有更好的方法?
每次我发现我可以直接在 HttpComponentsClientHttpRequestFactory 对象上显式设置读取超时,而不是将新的 RequestFactory 注入 restTemplate。
((HttpComponentsClientHttpRequestFactory)restTemplate.getRequestFactory()).setReadTimeout(timeout)
我正在使用 Spring RestTemplate 从我的应用程序向不同的 REST 端点发出简单的 POST 请求。目前我在 Spring 配置文件中设置了 readTimout,如下所示:
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<constructor-arg>
<bean class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
<property name="readTimeout" value="10000" />
<property name="connectTimeout" value="10000"/>
</bean>
</constructor-arg>
</bean>
最近我的任务是根据每个请求动态设置 readTimout
我想我每次发出 POST 请求时都必须将一个新的 RequestFactory 注入到 restTemplate 中,并设置新的超时值,但这是实现此目的的可接受方式吗?有没有更好的方法?
每次我发现我可以直接在 HttpComponentsClientHttpRequestFactory 对象上显式设置读取超时,而不是将新的 RequestFactory 注入 restTemplate。
((HttpComponentsClientHttpRequestFactory)restTemplate.getRequestFactory()).setReadTimeout(timeout)