设置RestTemplate的读取超时

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置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)

以上是关于设置RestTemplate的读取超时的主要内容,如果未能解决你的问题,请参考以下文章

关于spring resttemplate超时设置

Spring RestTemplate 超时

如何在 RestTemplate 中添加超时

Eureka restTemplate访问超时

nzSQLException 读取超时错误

Spring Cloud常用组件超时总结