Spring rest模板readTimeOut

前端之家收集整理的这篇文章主要介绍了Spring rest模板readTimeOut前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试理解restTemplate上可用的readTimeout,它究竟是什么?

它是在我们获得超时异常之前请求可以花费的总时间吗?

最佳答案
您可以在RestTemplate上定义读取超时,如下所示:

HttpComponentsClientHttpRequestFactory clientRequestFactory = new HttpComponentsClientHttpRequestFactory();
// set the read timeot,this value is in miliseconds
clientRequestFactory.setReadTimeout(500);

RestTemplate restTemplate = new RestTemplate(clientRequestFactory);

给定一个X millis的readTimeout,通过RestTemplate实例发出的任何超过X millis的请求将导致一个ResourceAccessException,包含一个java.net.SocketTimeoutException,并带有异常消息:“Read timed out”.

超时实际上是由HttpClient实例中的套接字连接器实现的,该实例由RestTemplate包装,因此当请求首次命中该套接字时,时钟开始,当这些请求首先出现时停止:请求完成或达到readTimeout.

实际上,这意味着任何花费超过配置的readTmeout的请求都将因超时异常而失败.

猜你在找的Spring相关文章