Apache HttpClient持久连接用法

时间:2015-07-02 20:16:16

标签: java apache-httpclient-4.x

使用Apache HttpClient时,使用相同TCP连接的正确方法是什么?

我的代码目前是:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpClientContext httpContext = HttpClientContext.create();
for (int i = 0; i < 100; i++)
{
    CloseableHttpResponse response = httpClient.execute(new HttpGet("http://www.google.co.uk"), httpContext);
    String responseBody = EntityUtils.toString(response.getEntity());
    EntityUtils.consume(response.getEntity());
    response.close();
}

我尝试使用带有和不带response.close()的代码,但每次运行的时间都不同,我无法确定哪一个保持连接打开。

有人可以向我解释如何保持连接畅通吗?

1 个答案:

答案 0 :(得分:0)

所以在弄乱了TCPView后,我发现放置了这些线:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpClientContext httpContext = HttpClientContext.create();

循环内部每次都使用新的TCP连接。事实证明,HttpClient会自动尝试并重用同一个'HttpClient'对象的连接。