DefaultHttpClient在多个请求上保持活动连接

我正在使用DefaultHttpClient通过基本身份validation向同一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(); } } 

我的问题是在这样做的同时保持连接的最佳方法是什么。 所以我不需要关闭每个post请求的连接。

您可能需要添加Socket_Timeout参数并实现KeepAlive策略,这些策略在此处详述 –

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