我正在尝试理解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] 举报,一经查实,本站将立刻删除。