Dhr*_*uva 2 java https apache-httpclient-4.x
我已设置套接字超时SocketConfig并将 SocketConfig 设置为连接管理器
connManager.setDefaultSocketConfig(SocketConfig.custom().setSoTimeout(soTimeout).build())
Run Code Online (Sandbox Code Playgroud)
RequestConfig并通过将其设置为覆盖单个请求的套接字超时值
httpRequest.setConfig(RequestConfig.copy(defaultRequestConfig).setSocketTimeout(timeout).build())
Run Code Online (Sandbox Code Playgroud)
参考链接。
对于所有 http 请求,使用 RequestConfig 设置的新值将按预期覆盖旧值。但对于 https 请求,它始终考虑 SocketConfig 中设置的旧值。
在得知这可能是 4.3.1 参考链接中的问题后,我还将 httpclient 从 4.3.1 升级到 4.3.6 。但即使这样也没有帮助我解决问题。
我错过了什么吗?关于如何解决这个问题有什么想法吗?
这只是部分正确。RequestConfig代表请求级别设置,SocketConfig代表连接级别设置。安全连接需要进行 SSL/TLS 握手并建立安全会话,然后才能用于执行请求。因此,RequestConfig只有在完全建立 HTTPS 连接后才能联合设置。在此之前仅SocketConfig适用。
| 归档时间: |
|
| 查看次数: |
4205 次 |
| 最近记录: |