https://maps.googleapis.com/****
import HttpClient 等类设置代理访问。
HttpHost proxy = new HttpHost("***",8080,"http");
HttpGet request = new HttpGet("https://maps.googleapis.com/*******");
CloseableHttpClient httpClient = HttpClients.custom().setProxy(proxy).build();
CloseableHttpResponse response = httpClient.execute(request);
System.out.println(EntityUtils.toString(response.getEntity()));
报错误如下:
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
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1884)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270)
解决办法 jdk1.7换成1.8。可能导致原因是httpclient版本依赖于1.8.
方法来源
HTTPS访问异常解决

本文介绍了一个使用HttpClient通过代理访问Google Maps API时遇到的SSL握手异常问题及其解决方案。问题表现为无法找到有效的证书路径到请求目标,最终确定解决方案为将JDK版本从1.7升级到1.8。
3036

被折叠的 条评论
为什么被折叠?



