CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 漏洞列表
  3. 正文

httpclient4-2020/8/19

2020年8月19日 366点热度 0人点赞 0条评论

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
}
}
}
}0daybank

标签: 暂无
最后更新:2020年8月19日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me