我正在使用 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/