新旧apache HttpClient 获取httpClient方法
在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.请求方法:POST [支持高并发同时请求] 点击获取请求key和secret Headers: 参数名称 参数值 是否必须 示例 备注 Content-Type ...
- mysql新旧版本_MySQL新旧版本ORDER BY 处理方法
MySQL 的order by 涉及到三个参数: 我来简单说下MySQL的排序规则. MySQL内部有两种排序规则: 第一种,是普通的排序. 第二种,是冗余排序. mysql> select t ...
- vue watch监听数据解决新旧值一样的问题(newValue, oldValue)
watch是监听 Vue 实例变化的一个表达式或方法.回调函数得到的参数为新值和旧值. 基础用法 <!DOCTYPE html> <html lang="en"& ...
- java怎么得到1.5_如何使用httpclient获取SSL网站页面源码(jdk1.5)(中篇)
(接上篇) 注意:TestSSL类中采用瑞士网的资源来测试,分析参数时,我使用了工具HttpProfessional4.1(网页参数请求头解析工具,行业中使用的东东,请上网查一下如何用,我在此不作详细 ...
- Android学习笔记---HttpClient入门,使用方法,及简介
HttpClient入门 发华 金, 软件工程师,IBM CSDL, EMC 金发华是一名工作在 IBM CSDL 的软件工程师.他喜欢钻研各种新的技术,在 Java 网络开发和 Web 开发方面颇有 ...
- httpclient获取和设置cookie
第一篇 httpclient获取和设置cookie public static void main(String[] args) {CookieStore cookieStore = new Bas ...
- jsonp react 获取返回值_谈谈对 React 新旧生命周期的理解
前言 在写这篇文章的时候,React 已经出了 17.0.1 版本了,虽说还来讨论目前 React 新旧生命周期有点晚了,React 两个新生命周期虽然出了很久,但实际开发我却没有用过,因为 Reac ...
- odoo10参考系列--ORM API 二(新旧API兼容性、模型参考和方法修饰符)
新API与旧API的兼容性 现在的Odoo是从就的(不规律的)API过渡来的,它可能需要从一个手动桥接到另一个手动桥接: RPC层(XML-RPC和RPC)是在旧的API的形式表达,表达的纯粹的方法在 ...
- HttpComponents之httpclient基本使用方法
2019独角兽企业重金招聘Python工程师标准>>> httpclient的版本是4.3 第一种方式 package http;import org.apache.http.Htt ...
最新文章
- linux java 构建工具有哪些,Linux ant --强大的Java开发构建工具
- Android性能优化之App应用启动分析与优化
- matlab绘制离散数据图
- c++ select函数_PySpark 操作函数一览
- 10分钟搭建完成人脸通行系统 百度『乘风』人脸智能化平台了解一下
- ajax上传文件报404_FTP上传文件需要注意哪些事项
- qscoj:喵哈哈村的狼人杀大战(5)
- access窗体主体居中
- mysql什么是主键和外键?
- 【百度头条】精准微营销—本地离线92GBQQ群数据库,包含全部版本
- 左程云 Java 笔记--排序
- 定期删除IIS日志文件
- Python 根据excel内容批量生成二维码
- C语言编辑时绝对值怎么输,互联网常识:c语言绝对值怎么打
- Android 饼形图
- Java集合的subList方法分析
- 电竞杨超越王思聪LOL夏季官方赛C 位出道 王校长真实水平是这样的!
- 对于大学工作规划和面试前准备
- 支付宝福字出五福敬业爱国富强和谐友善福图片收集收藏攻略
- webpack的proxy代理配置
热门文章
- JZOJ 4238. 【五校联考5day2】纪念碑
- java web文件夹_JAVA WEB项目文件夹上传下载解决方案
- python报表设计控件_使用Python快速制作可视化报表
- html4.0编辑器,KindEditor HTML(在线编辑器)
- 模型学习 - SVM
- 线段树的数组大小下限及证明
- 三级C语言上机考试试题与题解,全国计算机等级三级C语言上机试题逐题解析
- 访问者模式 php,php设计模式 Visitor 访问者模式
- python爬虫与数据分析实战27_Python网络爬虫与文本数据分析
- html写三角形,css3怎么写三角形?