最近在对接某一平台的时候之前没问题的数据推送接口忽然返回这个错误,研究了一天原理也没搞明白,有说需要兼容HttpPost请求https格式,有说是因为证书不合法,需要jdk导入对方的域名证书。
试了很多方法,终于找到了解决方案。
初始化httpclient的时候忽略一下证书校验就行
//信任所有证书,关闭主机名校验
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
SSLContexts.custom().loadTrustMaterial
(null,new TrustSelfSignedStrategy()).build(),
NoopHostnameVerifier.INSTANCE);
// 创建Httpclient对象
CloseableHttpClient httpclient =
HttpClients.custom().setSSLSocketFactory(sslsf).build();
HttpPost httpPost = new HttpPost(url);
我估计就是对面证书有问题,为了省些扯皮的时间,还是自己兼容一下吧