java - DefaultHttpClient 在多个请求上保持 Activity 连接

标签 java apache-httpclient-4.x

我正在使用 DefaultHttpClient 通过基本身份验证向同一 URL 发出大量请求。

像这样:

for (String json: listOfItems)
{
    DefaultHttpClient client = new DefaultHttpClient();

    try
    {       
       client.getCredentialsProvider().setCredentials(
                    new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, "basic"),
                    new UsernamePasswordCredentials(user, pass));

       HttpPost request = new HttpPost(path);
       setHeaders(request);

       StringEntity se = new StringEntity(json, HTTP.UTF_8);
       se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON));
       request.setEntity(se);

       client.execute(request);    
    }       
    finally
    {
       // close/release connection
       client.getConnectionManager().shutdown();            
    }
}

我的问题是在执行此操作时保持连接的最佳方式是什么。 所以我不需要在每次发布请求时关闭连接。

最佳答案

您可能需要添加 Socket_Timeout 参数并实现 KeepAlive 策略,此处有详细说明 -

http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d5e652

关于java - DefaultHttpClient 在多个请求上保持 Activity 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9904040/

相关文章:

java - 想要删除前面的星号和字符并跟随它,为什么我的代码不起作用

java - 连接和连接请求超时

java - 什么是 "system default"http 超时?

java - HttpClient javax.net.ssl.SSLPeerUnverifiedException : peer not authenticated when time shifted?

java - 将 Java 配置与 Spring Security 一起用于基于注释的角色检查和基本 HTTP 身份验证

java - 为什么泛型类型参数上的注释对于嵌套类型不可见?

java - 在 Mollweide 投影中获取我的世界地图中某个点的经度纬度

java - 加密/解密文件系统中的 Json 文件

Java 和 HttpsUrlConnection 忽略 ssl 证书

java - 弃用 HttpClient,现在使用 apache-httpclient-4.3.x