在apache httpclient 4.3版本中对很多旧的类进行了deprecated标注,通常比较常用的就是下面两个类了。

DefaultHttpClient —> CloseableHttpClient
HttpResponse —> CloseableHttpResponse

目前互联网对外提供的接口通常都是HTTPS协议,有时候接口提供方所示用的证书会出现证书不受信任的提示,chrome访问接口(通常也不会用chrome去访问接口,只是举个例子)会出现这样的提示:

为此我们调用这类接口的时候就要忽略掉证书认证信息,我们调用接口的httpClient就要做特殊处理。下面记录下httpclient 4.3以前和之后的httpClient获取方法。

httpclient jar包4.3以前版本获取HttpClient方法如下:

 1 public static HttpClient getHttpClient(HttpClient base) {
 2         try {
 3             SSLContext ctx = SSLContext.getInstance("SSL");
 4             X509TrustManager tm = new X509TrustManager() {
 5                 public java.security.cert.X509Certificate[] getAcceptedIssuers() {
 6                     return null;
 7                 }
 8
 9                 @Override
10                 public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
11                 }
12
13                 @Override
14                 public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
15                 }
16             };
17
18             ctx.init(null, new TrustManager[] {tm}, null);
19             SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
20             ClientConnectionManager mgr = base.getConnectionManager();
21             SchemeRegistry registry = mgr.getSchemeRegistry();
22             registry.register(new Scheme("https", 443, ssf));
23             return new DefaultHttpClient(mgr, base.getParams());
24         } catch (Exception e) {
25             log.warn("{}", e);
26             return null;
27         }
28     }

httpclient jar包4.3之后版本获取HttpClient方法如下:

 1 public static CloseableHttpClient getHttpClient() {
 2         try {
 3             SSLContext sslContext = SSLContext.getInstance("SSL");
 4             sslContext.init(null, new TrustManager[] {new X509TrustManager() {
 5                 @Override
 6                 public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
 7
 8                 }
 9
10                 @Override
11                 public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
12
13                 }
14
15                 @Override
16                 public X509Certificate[] getAcceptedIssuers() {
17                     return new X509Certificate[0];
18                 }
19             }}, new SecureRandom());
20             SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
21             CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().setSSLSocketFactory(socketFactory).build();
22             return closeableHttpClient;
23         } catch (Exception e) {
24             log.warn("create closeable http client failed!");
25             return HttpClientBuilder.create().build();
26         }
27     }

转载于:https://www.cnblogs.com/snowater/p/7591128.html

新旧apache HttpClient 获取httpClient方法相关推荐

  1. 淘宝店铺上新图片上传获取请求方法

    淘宝上新图片上传获取请求方法如下: 1.请求方法:POST [支持高并发同时请求] 点击获取请求key和secret Headers: 参数名称 参数值 是否必须 示例 备注 Content-Type ...

  2. mysql新旧版本_MySQL新旧版本ORDER BY 处理方法

    MySQL 的order by 涉及到三个参数: 我来简单说下MySQL的排序规则. MySQL内部有两种排序规则: 第一种,是普通的排序. 第二种,是冗余排序. mysql> select t ...

  3. vue watch监听数据解决新旧值一样的问题(newValue, oldValue)

    watch是监听 Vue 实例变化的一个表达式或方法.回调函数得到的参数为新值和旧值. 基础用法 <!DOCTYPE html> <html lang="en"& ...

  4. java怎么得到1.5_如何使用httpclient获取SSL网站页面源码(jdk1.5)(中篇)

    (接上篇) 注意:TestSSL类中采用瑞士网的资源来测试,分析参数时,我使用了工具HttpProfessional4.1(网页参数请求头解析工具,行业中使用的东东,请上网查一下如何用,我在此不作详细 ...

  5. Android学习笔记---HttpClient入门,使用方法,及简介

    HttpClient入门 发华 金, 软件工程师,IBM CSDL, EMC 金发华是一名工作在 IBM CSDL 的软件工程师.他喜欢钻研各种新的技术,在 Java 网络开发和 Web 开发方面颇有 ...

  6. httpclient获取和设置cookie

    第一篇  httpclient获取和设置cookie public static void main(String[] args) {CookieStore cookieStore = new Bas ...

  7. jsonp react 获取返回值_谈谈对 React 新旧生命周期的理解

    前言 在写这篇文章的时候,React 已经出了 17.0.1 版本了,虽说还来讨论目前 React 新旧生命周期有点晚了,React 两个新生命周期虽然出了很久,但实际开发我却没有用过,因为 Reac ...

  8. odoo10参考系列--ORM API 二(新旧API兼容性、模型参考和方法修饰符)

    新API与旧API的兼容性 现在的Odoo是从就的(不规律的)API过渡来的,它可能需要从一个手动桥接到另一个手动桥接: RPC层(XML-RPC和RPC)是在旧的API的形式表达,表达的纯粹的方法在 ...

  9. HttpComponents之httpclient基本使用方法

    2019独角兽企业重金招聘Python工程师标准>>> httpclient的版本是4.3 第一种方式 package http;import org.apache.http.Htt ...

最新文章

  1. linux java 构建工具有哪些,Linux ant --强大的Java开发构建工具
  2. Android性能优化之App应用启动分析与优化
  3. matlab绘制离散数据图
  4. c++ select函数_PySpark 操作函数一览
  5. 10分钟搭建完成人脸通行系统 百度『乘风』人脸智能化平台了解一下
  6. ajax上传文件报404_FTP上传文件需要注意哪些事项
  7. qscoj:喵哈哈村的狼人杀大战(5)
  8. access窗体主体居中
  9. mysql什么是主键和外键?
  10. 【百度头条】精准微营销—本地离线92GBQQ群数据库,包含全部版本
  11. 左程云 Java 笔记--排序
  12. 定期删除IIS日志文件
  13. Python 根据excel内容批量生成二维码
  14. C语言编辑时绝对值怎么输,互联网常识:c语言绝对值怎么打
  15. Android 饼形图
  16. Java集合的subList方法分析
  17. 电竞杨超越王思聪LOL夏季官方赛C 位出道 王校长真实水平是这样的!
  18. 对于大学工作规划和面试前准备
  19. 支付宝福字出五福敬业爱国富强和谐友善福图片收集收藏攻略
  20. webpack的proxy代理配置

热门文章

  1. JZOJ 4238. 【五校联考5day2】纪念碑
  2. java web文件夹_JAVA WEB项目文件夹上传下载解决方案
  3. python报表设计控件_使用Python快速制作可视化报表
  4. html4.0编辑器,KindEditor HTML(在线编辑器)
  5. 模型学习 - SVM
  6. 线段树的数组大小下限及证明
  7. 三级C语言上机考试试题与题解,全国计算机等级三级C语言上机试题逐题解析
  8. 访问者模式 php,php设计模式 Visitor 访问者模式
  9. python爬虫与数据分析实战27_Python网络爬虫与文本数据分析
  10. html写三角形,css3怎么写三角形?