java - Apache HttpClient 持久连接使用

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

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

最佳答案

所以在弄乱了TCPView之后我发现放置线条:

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

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

关于java - Apache HttpClient 持久连接使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31193876/

相关文章:

java - 如何在 IntelliJ 中运行新的基于 Maven 的 “quickstart” 应用程序?

java - 使用 JSON.org 解析器从 HttpClient 请求中解析 JSON

java - 如何使用 junit 对 HttpClient 重试逻辑进行单元测试

java - HTTP SSL 相互身份验证代码在 Apache HTTPClient 4.0.1 中有效,但在 4.1 中失败

java - 我的批量 jpg 缩放器适用于彩色图像,但灰度图像会被冲掉

java - Opencv 打开视频文件但捕获 isOpened 始终为 false

java - 如何使用 Google Drive REST API 和 HTTPClient 创建文件夹?

java - 代理后面的 Apache Fluent HttpClient 导致未知主机

java - 理解如何创建实体管理器或者我是否可以在 JAVA EE 中生成它们的问题

Java类变量声明