httpclient4.2.1最新版连接池配置
2016-03-10 16:05
513 查看
/** * 适合多线程的HttpClient,用httpClient4.2.1实现 * @return DefaultHttpClient */ public static DefaultHttpClient getHttpClient() { // 设置组件参数, HTTP协议的版本,1.1/1.0/0.9 HttpParams params = new BasicHttpParams(); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1"); HttpProtocolParams.setUseExpectContinue(params, true); //设置连接超时时间 int REQUEST_TIMEOUT = 10*1000; //设置请求超时10秒钟 int SO_TIMEOUT = 10*1000; //设置等待数据超时时间10秒钟 //HttpConnectionParams.setConnectionTimeout(params, REQUEST_TIMEOUT); //HttpConnectionParams.setSoTimeout(params, SO_TIMEOUT); params.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, REQUEST_TIMEOUT); params.setParameter(CoreConnectionPNames.SO_TIMEOUT, SO_TIMEOUT); //设置访问协议 SchemeRegistry schreg = new SchemeRegistry(); schreg.register(new Scheme("http",80,PlainSocketFactory.getSocketFactory())); schreg.register(new Scheme("https", 443, SSLSocketFactory.getSocketFactory())); //多连接的线程安全的管理器 PoolingClientConnectionManager pccm = new PoolingClientConnectionManager(schreg); pccm.setDefaultMaxPerRoute(20); //每个主机的最大并行链接数 pccm.setMaxTotal(100); //客户端总并行链接最大数 DefaultHttpClient httpClient = new DefaultHttpClient(pccm, params); return httpClient; }
http://blog.csdn.net/taki_dsm/article/details/8680072
/** * * @return DefaultHttpClient */ public static synchronized DefaultHttpClient getHttpClient() { if(httpClient == null) { Log.v(TAG, "->> httpClient is null ->> do getHttpClient"); // 设置组件参数, HTTP协议的版本,1.1/1.0/0.9 HttpParams params = new BasicHttpParams(); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1"); HttpProtocolParams.setUseExpectContinue(params, true); //设置连接超时时间 int REQUEST_TIMEOUT = 10 * 1000; //设置请求超时10秒钟 int SO_TIMEOUT = 10 * 1000; //设置等待数据超时时间10秒钟 HttpConnectionParams.setConnectionTimeout(params, REQUEST_TIMEOUT); HttpConnectionParams.setSoTimeout(params, SO_TIMEOUT); ConnManagerParams.setTimeout(params, 1000); //从连接池中取连接的超时时间 //设置访问协议 SchemeRegistry schreg = new SchemeRegistry(); schreg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); schreg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443)); // 使用线程安全的连接管理来创建HttpClient ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schreg); httpClient = new DefaultHttpClient(conMgr, params); } return httpClient; }
相关文章推荐
- http://www.dewen.net.cn/q/6120/如何获取Java对象的大小
- OSI七层与TCP/IP五层网络架构详解
- OSI七层与TCP/IP五层网络架构详解
- 谷歌发布的首款基于HTTP/2和protobuf的RPC框架:GRPC
- wireshark 抓包 实例分析TCP三次握手过程
- TCP/IP/UDP/ICMP/ARP/ethernet 各种协议头部结构体
- httpclient https
- TCP/IP三次握手与四次挥手
- http://developer.51cto.com/art/201104/255729.htm
- httpclient Invalid use of SingleClientConnManager: connection still alloc
- Java HttpURLConnection超时问题
- Windows 下单机最大TCP连接数
- HttpFox: HTTP 监视及分析利器
- HttpClient 4.1 post 继续访问 重定向,301,302 的url
- 谷歌chrome浏览器和火狐firefox浏览器自带http抓包工具和请求模拟插件
- HttpsURLConnection
- HttpClient4.X Invalid use of SingleClientConnManager: connection still allocated
- 使用 HttpClient 4 进行文件上传
- 【网络流+可持久化线段树】[UOJ#77/BZOJ3218]A+B Problem
- http://www.dewen.net.cn/q/14879/搜索引擎结果自动跳转