当前位置: 首页 > wzjs >正文

营销型网站建设选择题平价网站建设

营销型网站建设选择题,平价网站建设,旅游网站开发答辩ppt,新产品推广策划方案1. 踩坑经历 最近做了个需求,需要调用第三方接口获取数据,在联调时一直失败,代码抛出javax.net.ssl.SSLHandshakeException异常, 具体错误信息如下所示: javax.net.ssl.SSLHandshakeException: sun.security.validat…

1. 踩坑经历

最近做了个需求,需要调用第三方接口获取数据,在联调时一直失败,代码抛出javax.net.ssl.SSLHandshakeException异常,

具体错误信息如下所示:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

2.原因分析

因为调用第三方接口的代码是复用项目中原有的工具类(基于httpclient封装),所以在确认完传参没问题后,第一时间排除了编码问题。

然后开始怀疑第三方提供的接口地址(因为竟然是IP+端口访问),在和第三方确认没有域名访问后,在浏览器里输入第三方的接口地址,发现证书有问题:

又使用Postman调用第三方接口,也是失败,提示自签名证书:

通过以上分析,可以发现出现该问题的根本原因是Java客户端不信任目标服务器的SSL证书,比如这个第三方使用的自签名证书。

3.解决方案

解决方案一般有2种,第1种方案是将服务器证书导入Java信任库,第2种方案是绕过SSL验证,这里采用第2种方案。

首先,新建HttpClient工具类:

import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;public class HttpClientUtils {public static CloseableHttpClient createIgnoreCertClient() throws NoSuchAlgorithmException, KeyManagementException {SSLContext sslContext = SSLContext.getInstance("SSL");sslContext.init(null, new TrustManager[]{new X509TrustManager() {@Overridepublic X509Certificate[] getAcceptedIssuers() {return null;}@Overridepublic void checkClientTrusted(X509Certificate[] certs, String authType) {}@Overridepublic void checkServerTrusted(X509Certificate[] certs, String authType) {}}}, new java.security.SecureRandom());SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);return HttpClients.custom().setSSLSocketFactory(sslConnectionSocketFactory).build();}
}

然后将原来声明httpClient的代码改为如下所示:

CloseableHttpClient httpClient = HttpClientUtils.createIgnoreCertClient();

注意事项:

确保项目中引入了httpclient依赖:

<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version>
</dependency>

文章转载自:

http://wRgCaFF3.wtcyz.cn
http://XrC9CcqW.wtcyz.cn
http://5waoEaul.wtcyz.cn
http://4PsfCgkT.wtcyz.cn
http://m61YtlO6.wtcyz.cn
http://xreHxKiZ.wtcyz.cn
http://QzaF4jkT.wtcyz.cn
http://y50WLZkb.wtcyz.cn
http://2J9aMOuO.wtcyz.cn
http://CFG4PKY0.wtcyz.cn
http://opsnWouj.wtcyz.cn
http://0WkcMNmr.wtcyz.cn
http://aYX6N9eY.wtcyz.cn
http://JPmAXSea.wtcyz.cn
http://vFj5L1N0.wtcyz.cn
http://lfESp1wI.wtcyz.cn
http://e110yleR.wtcyz.cn
http://Oel6ctM4.wtcyz.cn
http://QUMmI6iA.wtcyz.cn
http://908np9Vu.wtcyz.cn
http://Cg40lU5S.wtcyz.cn
http://d6OHBF5R.wtcyz.cn
http://cP2MqIdp.wtcyz.cn
http://w03oBL96.wtcyz.cn
http://LJNNZ7AV.wtcyz.cn
http://LjXiRvtR.wtcyz.cn
http://x834cD7y.wtcyz.cn
http://aj6xXUba.wtcyz.cn
http://RChZ7SzI.wtcyz.cn
http://X1mqYdxc.wtcyz.cn
http://www.dtcms.com/wzjs/609904.html

相关文章:

  • 网站建设中 页面南通企业做网站
  • 长春网站制作诚推源晟wordpress插件申请软著
  • 唐山公司网站制作软件界面设计图
  • 做笔记的网站源码企业简介模板范文
  • 网站建设哪里最好ftp网站上传之后怎么办
  • 制作网站哪家便宜北京平面设计工作室
  • 跨境电商自己做网站引流wordpress 404宝塔
  • 网站编辑招聘信息sql数据库添加网站
  • 网站建设技术合同手机网站建设专家
  • 最早做弹幕的网站响应式网站模板
  • 上海网站建设网济宁网站建设招聘
  • 山西做网站费用做网站开发平台
  • 东莞医疗网站建设报价在wordpress官网建站
  • 网页商城设计商城网站设计案例国外的域名注册网站
  • 平台式网站模板下载吉林网站模板
  • 做外贸要建什么网站婚庆设计效果图
  • 东莞建英文网站的公司南京紫米网络科技有限公司
  • 自己建网站做代理商iis建好的网站套用模板
  • 网站竞价词怎么做wordpress 文章编辑框插件
  • 大学校园网站建设的新开传奇最大网站999
  • 江苏网站建设定制外包网站制作
  • 晋江市住房和城乡建设局网站是多少广州网站优化推广方案
  • 深圳网站建设大概多少钱上海网站原型设计
  • 浙江英文网站建设iis怎么搭建设计网站
  • 自己做qq头像网站岷县城乡建设局网站
  • 建设电影播放网站全国设计网站公司网站
  • 成都网站制作怎么收费哈尔滨企业建站
  • 校园网站建设依据注册公司成本多少钱
  • 网站开发 加二维扫码安阳专业做网站公司
  • wordpress搬迁后台总跳转到老网站苏州有哪些互联网大厂