我在SocketConfig
中设置了套接字超时,并将SocketConfig设置为连接管理器
connManager.setDefaultSocketConfig(SocketConfig.custom().setSoTimeout(soTimeout).build())
并通过将RequestConfig
设置为
httpRequest.setConfig(RequestConfig.copy(defaultRequestConfig).setSocketTimeout(timeout).build())
参考link。
对于所有http请求,使用RequestConfig设置的新值将按预期覆盖旧值。 但对于https请求,它总是考虑在SocketConfig中设置的旧值。
在得知这可能是4.3.1引用link中的问题之后,我还将httpclient从4.3.1升级到4.3.6。 但即使这并没有帮助我解决这个问题 我错过了什么吗?关于如何解决这个问题的任何想法?
答案 0 :(得分:3)
这只是部分正确。 RequestConfig
表示请求级别设置,而SocketConfig
表示连接级别设置。安全连接需要进行SSL / TLS握手,并在可用于执行请求之前建立安全会话。因此,只有在完全建立HTTPS连接后才能联合RequestConfig
设置。在那之前只有SocketConfig
适用。