package com.lyms.cm.qiniu; import org.apache.http.HttpHost; import org.apache.http.client.HttpClient; import org.apache.http.conn.routing.HttpRoute; import org.apache.http.conn.scheme.PlainSocketFactory; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.conn.PoolingClientConnectionManager; /** * The class Http provides a default HttpConnectionPool implementation. Anyway, * you can set an appropriate version according to your application. * */ public class Http { private static HttpClient client; /** * Sets a new HttpClient instance */ public static void setClient(HttpClient c) { client = c; } /** * Gets the HttpClient instance */ public static HttpClient getClient() { if (client == null) { client = makeDefaultClient(); } return client; } // a default implementation private static HttpClient makeDefaultClient() { SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme("http", 80, PlainSocketFactory .getSocketFactory())); schemeRegistry.register(new Scheme("https", 443, SSLSocketFactory .getSocketFactory())); PoolingClientConnectionManager cm = new PoolingClientConnectionManager( schemeRegistry); // Increase max total connection to 200 cm.setMaxTotal(200); // Increase default max connection per route to 20 cm.setDefaultMaxPerRoute(20); // Increase max connections for localhost:80 to 50 HttpHost localhost = new HttpHost("locahost", 80); cm.setMaxPerRoute(new HttpRoute(localhost), 50); return new DefaultHttpClient(cm); } }