使用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()
的代码,但每次运行的时间都不同,我无法确定哪一个保持连接打开。
有人可以向我解释如何保持连接畅通吗?
答案 0 :(得分:0)
所以在弄乱了TCPView后,我发现放置了这些线:
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpClientContext httpContext = HttpClientContext.create();
循环内部每次都使用新的TCP连接。事实证明,HttpClient会自动尝试并重用同一个'HttpClient'对象的连接。