Hostname * not verified:certificate,HTTPS接口调用处理
使用OKHTTP调用HTTPS接口时,报错/异常信息:
Hostname * not verified:
certificate: sha256/F0yVXJ/nbG7JtrM+11NhtuKkepfbtzvXufVCUQ5Gxm4=
DN: CN=*.xxx.com, O=*有限公司, L=北京市, ST=北京市, C=CN
subjectAltNames: [*.xxx.com, xxx.com]
处理方式如下:
/*** 发送POST请求,调用HTTP接口* @param url 接口地址* @param params 接口参数(JSon格式)* @return JSon* */public static String post(String url, String params) throws Exception {String json = null;if(params == null) params = "";TrustManagerFactory trustManagerFactory = null;trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());trustManagerFactory.init((KeyStore) null);TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) {throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers));}X509TrustManager trustManager = (X509TrustManager) trustManagers[0];SSLContext sslContext = SSLContext.getInstance("TLS");sslContext.init(null, new TrustManager[]{trustManager}, null);OkHttpClient client = new OkHttpClient().newBuilder().connectTimeout(15, TimeUnit.SECONDS).readTimeout(70, TimeUnit.SECONDS).sslSocketFactory(create(), trustManager).hostnameVerifier(trusts()).build();MediaType mediaType = MediaType.parse("application/json");RequestBody body = RequestBody.create(mediaType, params);Request.Builder builder = new Request.Builder();builder.url(url); //接口地址builder.method("POST", body);builder.addHeader("Content-Type", "application/json");Request request = builder.build();Response response = client.newCall(request).execute();ResponseBody responseBody = response.body();if (response.isSuccessful() && responseBody != null) {json = responseBody.string();} else {if(responseBody != null) json = responseBody.string();}return json;}/*** 处理SSL协议(添加信任域名)*/private static HostnameVerifier trusts() {return new HostnameVerifier() {@Overridepublic boolean verify(String hostname, SSLSession session) { HostnameVerifier verifier = HttpsURLConnection.getDefaultHostnameVerifier();return verifier.verify("*.xxx.com", session);}};}/*** 创建SSLSocketFactory* @return SSLSocketFactory*/private static SSLSocketFactory create() {SSLSocketFactory sslFactory = null;try {SSLContext ctx = SSLContext.getInstance("TLS");ctx.init(null, new TrustManager[]{new Verifier()}, new SecureRandom());sslFactory = ctx.getSocketFactory();} catch (Exception e) {e.printStackTrace();}return sslFactory;}
Hostname * not verified:certificate,HTTPS接口调用处理相关推荐
- http/https接口调用
java调用http/https接口,使用httpclient! 引入jar:commons-httpclient-3.1.0.jar </pre>baseclient,需要调用接口的继承 ...
- java实现HTTPS接口调用
话不多说,直接上代码! /*** 安全证书管理*/class MyX509TrustManager implements X509TrustManager{@Overridepublic void c ...
- 云极知客开放平台接口调用方法(C#)
云极知客为企业提供基于SAAS的智能问答服务.支持企业个性化知识库的快速导入,借助语义模型的理解和分析,使企业客户立即就拥有本行业的24小时客服小专家.其SAAS模式实现零成本投入下的实时客服数据的可 ...
- Python调用使用自颁发证书的https接口
使用keytools或者openssl生成p12格式的KeyStore(包含SSL证书),并使用该证书和SpringBoot搭建了服务端的https接口,搭建过程参考HTTPS相关知识点介绍 接下来介 ...
- Java 调用Http和Https接口
Java调用Http接口和Https接口 大多数我们调用的接口都是Http的,很少有Https的接口,近期做了个项目就用到和Https接口的请求调用,和大家分享一下心得.Http接口和Https接口主 ...
- Spring Boot项目中使用RestTemplate调用https接口出现 unable to find valid certification path to requested target
问题描述:Spring Boot项目中使用RestTemplate调用https接口出现以下错误: PKIX path building failed: sun.security.provider.c ...
- 淘宝,tmall,1688,抖音,拼多多等平台商品详情接口(网络爬虫数据接口调用示例)接口对接教程
淘宝,tmall,1688,抖音,拼多多等平台商品详情接口(网络爬虫数据接口调用示例)接口对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018) key Str ...
- 异步系统接口调用流程图
2019独角兽企业重金招聘Python工程师标准>>> 异步系统接口调用流程图 博客分类: java ................................... 转载于: ...
- 微服务实战之春云与刀客(三)—— 面向接口调用代码结构实例
2019独角兽企业重金招聘Python工程师标准>>> 概述 在上一篇中提到了spring cloud 面向接口调用的开发风格,这一篇会举一个简单的但完整的例子来说明整个代码结构. ...
最新文章
- 遇到的浏览器兼容问题及应对方法
- poj2955Brackets(区间DP)
- 几款好用超赞的Google Chrome插件
- Map map = request.getParameterMap(); BeanUtils.populate(bean, map);对前端表单的迅速封装与判断
- socket,TCP/IP的理解(转)
- mysql5.7.17的linux安装,linux下mysql5.7.17最新稳定版本安装教程
- php 多线程处理redis,redis的多线程
- 常见食物营养成分表图_营养成分表,你会看么?
- 什么是 XDoclet?
- 联发科(MediaTek)Pentonic 电视芯片将率先支持杜比视界 IQ 精准细节功能
- java plus方法_Java MyBatis-Plus 基本使用
- 传智黑马python18期_传智博客黑马Python就业14期资料
- java抓取豆瓣网页内容_爬虫实践--豆瓣电影当前上映电影信息爬取
- QProgressDialog setValue过快导致死机问题记录
- Gateway一直访问本地
- mywallet android app,记账软件MyWallet
- 2017.2.16 开涛shiro教程-第十七章-OAuth2集成(一)服务器端
- 理解signal函数
- afterlogic 7.0.1 php,免费webmail 7.0.1(after logic 最后一个免费版本)
- 二级java pdf_全国计算机等级考试二级Java语言程序设计.PDF