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

营销型网站建设选择题wordpress前台注册

营销型网站建设选择题,wordpress前台注册,怀远网站建设,永久免费手机网站建设教程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://www.dtcms.com/wzjs/535415.html

相关文章:

  • 江苏运营网站建设业务网站设计需要注意什么
  • 淘宝做导航网站有哪些功能吗深圳做网站哪家
  • 偃师市住房和城乡建设局网站吉安建站公司
  • 一站式网站建设平台民政局两学一做专题网站
  • 一个做任务的网站陕西机械加工网
  • 电商网站运营规划注册了微信小程序怎么登录
  • ai生成logo免费上海优化网站公司哪家好
  • 用什么软件做网站广告设计与制作工资
  • 做网站专题怎样添加微博常见的网络营销方式有哪些
  • 做电子商务网站建设工资多少钱旅行网站定制公司
  • 现在的网站前端用什么做免费追剧网站
  • 广州网站维护公司wordpress access
  • 文山州住房建设网站邢台专业做wap网站
  • 建站公司现状百度突然搜不到我的网站
  • 建设行业网站国外很炫酷的网站
  • php网站超市源码下载推广型的网站怎么做
  • 东营网站建设优选案例广东省建设工程造价管理协会网站
  • e4a怎么做点击跳转网站网站开发期末作品代码和数据库运行好大全
  • 吴桥网站建设价格环境设计专业必看网站
  • wordpress管理员密码被改seo手机关键词网址
  • 做一个手机网站成本广东东莞最近出什么事了
  • 阎良网站建设酒店网站建设系统介绍
  • 网站建设管理制度落实wordpress做PHP
  • 做设计到哪个网站赚钱陕煤化建设集团铜川分公司网站
  • 重庆三环建设监理咨询有限公司网站抖音代运营培训
  • wordpress代码生成器湖北网站优化公司
  • 人人车网站建设费用建设购物网站的方案
  • 南充外贸网站建设网络营销策略包括
  • 怎么做一元购网站西安营销型网站制作价格
  • 重庆网上房地产网站电脑版百度网盘