在httpclient 4.x.x中,当我们将PoolingClientConnectionManager配置为httpclient时,我们是否需要手动释放连接?

时间:2013-03-14 03:06:25

标签: java httpclient apache-httpclient-4.x

ENV:

  • Java 6
  • Apache HttpClient 4.2.3

问题详情:

按照httpclient手册,当我使用 DefaultHttpClient 而不配置任何连接管理器时。我们需要让连接管理器关闭。

但是当我在许多服务器上有很多请求时,我会将PoolingClientConnectionManager配置为连接管理器。在这种情况下我没有在Apache站点上找到任何引用 - 我应该做些什么来释放特定httpclient请求的连接?或者httpclient会在框架级别自动执行吗?

1 个答案:

答案 0 :(得分:1)

是的,你这样做。连接管理器为各个请求分配可用连接,但无法知道特定连接是否仍在使用中。处理响应时,HttpClient仅将消息头读入内存,而消息内容直接从底层连接流式传输。消费者有责任通过关闭与响应对象关联的内容输入流来触发连接释放回管理器。