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的原创作品,如需转载,请注明出处,否则将追究法律责任
java httpclient4_httpclient4使用说明相关推荐
- java 集成pageoffice_PageOffice 4.0 For Java集成使用说明
PageOffice 4.0 For Java集成使用说明 如果新建网站或集成到您现有的网站里: 1).拷贝"集成文件"文件夹中的lib文件夹覆盖到您自己Web项目中WEB-INF ...
- java实验楼使用说明_Java 方法
Java 方法 一.实验介绍 1.1 实验内容 本实验将学习Java方法的定义与语法规则.方法重载以及参数与返回值的相关内容. 1.2 实验知识点 方法的定义 方法重载 参数与返回值 1.3 实验环境 ...
- Java代码加密,Java加密方式,Java加密使用说明
概述 Java2C针对DEX文件进行加密保护,将DEX文件中标记的Java代码翻译为C代码,编译成加固后的SO文件.默认情况只加密activity中的onCreate函数,如果开发者想加密其它类和方法 ...
- java项目使用说明_java项目 BeanCopier使用说明
public classBeanCopierTest {static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:m ...
- 手把手教你搭建一个基于Java的分布式爬虫系统
http://blog.51cto.com/xpleaf/2093952 1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HB ...
- Java微信SDK方式进行网页授权
微信Java SDK开发文档(2.0.0)地址:https://github.com/wechat-group/weixin-java-tools/wiki 微信Java SDK使用说明: https ...
- 【开源】java做游戏之QQ连连看java单机高仿版(算是目前最高仿的了)
QQ连连看JAVA高仿单机版V1.0 前言 为什么说是目前最高仿的呢,因为想做这个的一般是新手,要实现的跟我一样有点难度,至少我在网上没搜到(java版本).还有就是高手对这个没兴趣,不会做这个玩意儿 ...
- SerialPort-4.0.+ 使用说明(Kotlin版本)
SerialPort-4.0.+ 项目官网 Java版本使用说明 介绍 SerialPort 是一个开源的对 Android 蓝牙串口通信的轻量封装库,轻松解决了构建自己的串口调试APP的复杂程度,让 ...
- 华为云IOT的应用侧开发Java Demo使用详细教程(IntelliJ IDEA 开发)
第0章 简介 最近有很多小伙伴在使用华为云IOT的应用侧开发的Java Demo时遇到一些问题,本期就教大家如何使用这个基于华为云官方提供的Java Demo,本期教程带大家做的是查询 ...
最新文章
- 滴滴 Elasticsearch 集群跨版本升级与平台重构之路
- 常用的js验证数字,电话号码,传真,邮箱,手机号码,邮编,日期
- 1-3_基本概念_程序进程
- 替换url部分_MOCTF部分Web题攻略
- mysql linux文件_MySQL在Linux系统下配置文件详解
- 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 10丨买下所有产品的客户【难度中等】
- 数字图像的5种增强处理
- install cuda5 on ubuntu12.04
- Oracle 行转列pivot 、列转行unpivot 的Sql语句总结
- jquery load 和 iframe 比较
- WinStore控件之Button、HyperlinkButton、RadioButton、CheckBox、progressBar、ScrollViewer、Slider...
- 炒冷饭系列:设计模式 单例模式
- JS总结 循环 退出循环 函数
- 查询sql 语句的好坏
- 129.求根到叶子节点数字之和
- Python全栈(四)高级编程技巧之4.元类编程、迭代器和生成器
- 油炸锅EN/IEC60335 CE认证标准介绍
- GIS中EPSG4326与EPSG3857的区别及转换关系-20220830更新
- 测试计划与测试方案区别
- android 上拉抽屉,Flutter上拉抽屉实现