您的位置:首页 > 理论基础 > 计算机网络

HttpClient4.x使用中出现的几个问题及解决方法

2016-10-25 17:01 537 查看
最近才开始接触这个工具包,官网上目前已经更新到HttpClient4.5.2了。google的时候看到HttpClient从4.0版本改了底层,因此使用时会出现一些方法不再适用的问题,这里记录出现的一些问题以及相应替代的方法。

1、 创建HttpClient时使用下面的语句,会出现
org.apache.http.impl.client.DefaultHttpClient' is deprecated


1

HttpClient httpClient = new DefaultHttpClient();

可以使用如下语句代替:来源

1

HttpClient httpClient = HttpClientBuilder.create().build();

或者

12
3
4

// 创建HttpClientBuilder
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
// HttpClient
CloseableHttpClient httpClient = httpClientBuilder.build();

2、 设置代理,HttpClient4.5.2版本可以使用如下语句:

12
3
4
5
6

//创建代理
HttpHost proxy = new HttpHost("your proxy IP", port);
RequestConfig config = RequestConfig.custom().setProxy(proxy).build();

//设置HttpPost/HttpGet使用代理
httpost.setConfig(config);

3、get或post时,如果访问的网站是https协议的,可以用如下方式访问:信任所有证书,如果可以具体到每个证书,就更好了。

12
3
4
5
6
7
8
9
10
1112
13
14
15
16
17
18
19

try {
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
//信任所有
public boolean isTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
return true;
}
}).build();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext);
return HttpClients.custom().setSSLSocketFactory(sslsf).build();
} catch (KeyManagementException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (KeyStoreException e) {
e.printStackTrace();
}
return HttpClients.createDefault();
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐