Apache HttpClient 持久连接用法

3

当使用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

所以在玩弄TCPView之后,我发现将以下行放置:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接