Apache HttpClient 持久连接使用

Apache HttpClient Persistent Connection usage

我在使用 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() 的代码,但每个时间都不同 运行,我无法弄清楚是哪一个保持连接打开。

有人可以向我解释一下如何保持连接打开吗?

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

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

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