微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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的请求都将因超时异常而失败.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐