当前位置:   article > 正文

Java爬虫(七)-- httpClient进阶: https 和 证书认证(讲故事篇)

sun.security.ssl.sslsocketimpl.starthandshake

一、前言

本篇风格会偏向讲故事,来记录整个发现问题,解决问题的过程。具体的知识点总结放在后一篇。

前段阵子被分配了一个工单,要求抓取另一个险企B的数据。想着应该不会比上一家A麻烦了,险企A抓取数据过程中有几次请求是跨域的,很多数据都是由ajax动态请求到的,要分析js代码,模拟请求。

稍微观察了一下险企B的页面源代码,发现所有操作除了表单提交,其他都是get请求。而且模拟登录时不需要输验证码。美滋滋。。就是有2点麻烦的地方:

  • 险企B是通过专线访问的,只有借助代理公司的网络才能访问,公司在代理公司那放了台电脑,然后我在公司远程连接那台电脑进行开发的。操作会有延时,有点卡。
  • 险企B的网站看起来很古老,只支持ie8及以下的浏览器访问,chrome、火狐啥的就更打不开了。所以抓包都靠fiddler了,页面解析元素定位就只能靠旧版本的ie开发工具,

好吧,虽然不便,但是还是不怎么影响开发过程。

然后在一开始,访问第一个登录页面的时候我就被卡住了。我用原来的工具类发了一个get请求去获取登录页面,结果报错了。

二、错误1

  1. debug:
  2. Unsupported record version SSLv2Hello
  3. javax.net.ssl.SSLException: Unsupported record version SSLv2Hello
  4. at sun.security.ssl.InputRecord.readV3Record(Unknown Source)
  5. at sun.security.ssl.InputRecord.read(Unknown Source)
  6. at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
  7. at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
  8. at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
  9. at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
  10. at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:275)
  11. at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:254)
  12. at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:123)
  13. at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:318)
  14. at org.apache.http.impl.execchain.MainClient
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/732709
推荐阅读
相关标签
  

闽ICP备14008679号