原链接:https://www.cnblogs.com/sunny08/p/8038440.html
在java代码中,使用HttpClient爬取https页面时,遇到了这个bug:javax.net.ssl.SSLException: Received fatal alert: protocol_version
分析:TLSv1.2是http默认协议的增强版,增加了一些安全方面的特性:保护传输数据安全,防止被窃取和篡改。
解决:
SSLContext ctx = SSLContexts.custom().useProtocol("TLSv1.2").build();
HttpClient httpClient = HttpClientBuilder.create().setSslcontext(ctx).build();
参考链接:
1)stackoverflow上的分析:
https://stackoverflow.com/questions/31684855/java-ssl-exception-protocol-version-when-trying-to-use-httpclient-to-log-into-a
2)标准的http协议名称:
https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#SSLContext
3)https站点强制通信协议TLSv1.2
http://m.blog.csdn.net/fred_lzy/article/details/74178023