说明:
httpclient 每个版本变化都很大,所以不敢保证适用于所有httpclient版本。当前版本httpclient4.3。
代码:
//自定义的socket工厂类可以和指定的协议(Http、Https)联系起来,用来创建自定义的连接管理器。
RegistryBuilder<ConnectionSocketFactory> r = RegistryBuilder.<ConnectionSocketFactory> create();
PlainConnectionSocketFactory plainsf = PlainConnectionSocketFactory.getSocketFactory();
//https信任所有证书
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
@Override
public boolean isTrusted(
java.security.cert.X509Certificate[] chain,
String authType) throws CertificateException {
// TODO Auto-generated method stub
return true;
}
}).build();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext);
r = r.register("https", sslsf);
r = r.register("http", plainsf);
//连接池管理器
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(r.build());
connectionManager.setMaxTotal(100);
//cookie
CookieStore cookieStore = new BasicCookieStore();
HttpClientBuilder httpClientBuilder = HttpClients.custom()
.setConnectionManager(connectionManager)
.setDefaultCookieStore(cookieStore);
RequestConfig globalconfig = RequestConfig.custom()
.setRedirectsEnabled(true)
.setCookieSpec(CookieSpecs.BROWSER_COMPATIBILITY).build();
CloseableHttpClient httpClient = httpClientBuilder.setDefaultRequestConfig(globalconfig).build();
本文介绍如何使用HTTPClient 4.3版本自定义连接管理器,包括创建自定义的socket工厂类与指定协议(Http、Https)关联,实现https信任所有证书,设置连接池管理器及cookie,最后构建并使用CloseableHttpClient。
3195

被折叠的 条评论
为什么被折叠?



