此问题与PoolingClientConnectionManager(HttpClient 4.2.5 API)
有关我在池中有最多5个远程连接,以及从中下载文件的20多个url列表。我下载文件后释放连接。但我没有给出任何超时值。从5个不同的URL下载文件后会发生什么。我认为我从文档中收集到的是第6个文件在客户端检测到连接从它结束时才开始下载。是这样吗?从URL下载文件后,我该怎么做才能关闭套接字。请注意,我从中下载文件的所有URL都在不同的服务器上。
答案 0 :(得分:3)
正确的方法是
} finally {
// Release the connection.
method.releaseConnection();
}
文档还提到,为了强制关闭连接,最简单的方法是覆盖connectionManager,在你的情况下是PoolingClientConnectionManager。
如果查看here处的代码,您可以看到可以更改releaseConnection方法。特别是更改第255行,以便在连接打开时将其关闭。
答案 1 :(得分:3)
向管理员发布连接并不能保证立即处置。管理者很可能会尝试保持连接存活。这里有两个选项(1)正如user2310289正确指出的那样,您可能希望实现一个自定义连接,在发布时不加选择地关闭连接或(2(推荐))实现一个自定义驱逐策略,用于在HttpClient tutorial
中描述的一段不活动时间之后驱逐持久连接