Dea*_*ler 3 httpclient apache-httpclient-4.x
来自netstat -anp | grep我在两个不同的时间,我可以看到HttpClient没有重新使用我的连接.我每次使用不同的URL连接到同一主机
为什么HttpClient不仅每次都重复使用与myhost.com相同的连接?
我有以下代码用于初始化我传递给HttpClient的Pool ...
PoolingClientConnectionManager mgr = new PoolingClientConnectionManager();
mgr.setDefaultMaxPerRoute(30);
mgr.setMaxTotal(30);
Run Code Online (Sandbox Code Playgroud)
我看到他们正在使用HttpRoute并且在equals中有localAddress,这似乎很奇怪,因为HttpRoute应该只对主机名和模式(https/http)相等,就是这样,对吧?这与它有关吗?这是一个错误吗?每次都要重新建立https套接字,性能非常糟糕!!!!!
我怀疑你的应用程序建立的SSL连接是有状态的.也就是说,服务器请求客户端使用私有证书进行身份验证,从而使其具有特定的安全上下文.HttpClient检测到这一点并阻止这些连接租用给具有不同安全上下文的调用者.通过强制为每个请求建立新连接而不是冒险将持久SSL连接租赁给错误的用户,HttpClient实际上是安全的.
你可以在这做两件事
有关详细信息,请参阅HttpClient教程的此部分
| 归档时间: |
|
| 查看次数: |
3364 次 |
| 最近记录: |