当前位置: 首页 > article >正文

java httpclient4_httpclient4使用说明

httpclient4使用说明

public class HttpClientObject {

public org.apache.http.client.HttpClient httpClient4New;// = new HttpClient();

public static HttpClient buildHttpClient() {

// builder.setProxy(new HttpHost("127.0.0.1",8888));

return builder.build();

}

//为HttpClient增加跳过SSL证书验证

private static PoolingHttpClientConnectionManager newConnectionManager() {

SSLContext sslcontext = null;

try {

sslcontext = SSLContext.getInstance("TLS");

X509TrustManager tm = new X509TrustManager() {

public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {

}

public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {

}

public X509Certificate[] getAcceptedIssuers() {

return null;

}

};

sslcontext.init(null, new TrustManager[] { tm }, null);

Registry socketFactoryRegistry = RegistryBuilder. create()

.register("http", PlainConnectionSocketFactory.INSTANCE)

.register("https", new SSLConnectionSocketFactory(sslcontext, NoopHostnameVerifier.INSTANCE))

.build();

SocketConfig config = SocketConfig.custom().setSoTimeout(1000 * 60).build();

PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(socketFactoryRegistry);

cm.setMaxTotal(20000);

cm.setDefaultMaxPerRoute(20000);

cm.setDefaultSocketConfig(config);

return cm;

}

catch (Exception e1) {

e1.printStackTrace();

}

return null;

}

private static PoolingHttpClientConnectionManager poolCm = null;

static {

poolCm = newConnectionManager();

new IdleConnectionMonitorThread(poolCm).start();

}

private static final RequestConfig defaultRequestConfig = RequestConfig.custom().setConnectTimeout(1000 * 10)

.setConnectionRequestTimeout(1000 * 10).setSocketTimeout(1000 * 60).build();

private static final HttpClientBuilder builder = HttpClients.custom().setConnectionManager(poolCm)

.setDefaultRequestConfig(defaultRequestConfig);

/**

* 定时清理连接池中失效的连接

*/

private static class IdleConnectionMonitorThread extends Thread {

private final HttpClientConnectionManager connMgr;

private volatile boolean shutdown;

public IdleConnectionMonitorThread(HttpClientConnectionManager connMgr) {

super();

this.connMgr = connMgr;

this.setDaemon(true);

}

@Override

public void run() {

try {

while (!shutdown) {

synchronized (this) {

wait(5000);

// Close expired connections

connMgr.closeExpiredConnections();

// Optionally, close connections

// that have been idle longer than 30 sec

connMgr.closeIdleConnections(30, TimeUnit.SECONDS);

}

}

}

catch (InterruptedException ex) {

// terminate

}

}

}

}

©著作权归作者所有:来自51CTO博客作者呜哈哈666888的原创作品,如需转载,请注明出处,否则将追究法律责任

http://www.lryc.cn/news/2419259.html

相关文章:

  • componentsJoinedByString和componentsSeparatedByString的使用
  • PHP中用header(Location: test.php)进行跳转时应注意的问题
  • Linux服务器防御最全教程
  • 杀毒软件 对应的进程名称
  • 龙将加速浏览器_《看门狗:军团》即将开启预载,迅游加速器支持下载和联机加速 18183手机游戏网...
  • VC 界面编程总结
  • 交换机基础配置-新版(4)
  • 没事也研究一下外挂--C#简单游戏外挂制作(以Warcraft Ⅲ为例)
  • 【MATLAB】等高线的绘制
  • 8、全国世界城市列表API接口,免费好用
  • ASN.1编码学习笔记
  • 【C】 C语言入门——带你从0开始
  • 数学思想方法猜想与反驳(3)反例反驳
  • android 手机芯片 datasheet,Datasheet (Alldatasheet.com)
  • BAT等大厂已开源的70个实用工具盘点(附下载地址)
  • 常用实用网站整理大全
  • 网络设计总体要求设计方案
  • 什么是次世代?建模初学者看过来
  • 老毛桃U盘装XP,ntldr is missing
  • 【MQ-3 酒精检测器与 Arduino检测酒精】
  • 定时关机命令——shutdown
  • 采轩服饰工业园选择飞鱼星完成无线覆盖
  • 将pygame库编写的小游戏打包为exe文件
  • 启动应用程序出现d3dx9_33.dll缺少问题解决
  • GSM功率等级
  • ant入门教程
  • 中国服务器审计系统,汉邦服务器监控与审计系统
  • fastdfs机制和配置详解
  • 网络搜索引擎大全
  • 201615105027张金文