Diy*_*kir 8 java timeout apache-httpclient-4.x
我正在使用Apache RequestConfig来配置我的一些超时HttpClient
.
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(timeout)
.setSocketTimeout(timeout)
.setConnectionRequestTimeout(timeout) // Can I leave this out..
.build();
CloseableHttpClient httpClient = HttpClients.custom()
//.setConnectionManager(connectionManager) // ..if I don't use this
.setDefaultRequestConfig(config)
.build();
Run Code Online (Sandbox Code Playgroud)
setConnectionRequestTimeout(timeout)
即使我没有自定义连接管理器/池设置,它是否有意义调用?
据我所知,setConnectionRequestTimeout(timeout)
用于设置等待连接管理器/池连接的时间.
请注意,我没有在httpClient
(请参阅注释行)上设置连接管理器.
Isuru的回答大多是正确的.默认连接管理器是PoolingHttpClientConnectionManager
.
但是,默认情况下,它的池中只有一个连接.如果您HttpClient
从同一个线程同步使用您的同步,则永远不会遇到ConnectionRequestTimeout
生效的情况.
如果您使用的HttpClient
是多个线程,则可能需要设置它,但您可能还希望增加池大小等.
对于单线程httpclient使用,可以安全地将其删除.
归档时间: |
|
查看次数: |
2788 次 |
最近记录: |