http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 47206|回复: 17

[教程] 解决12306验证码获取提示“基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系“

[复制链接]
发表于 2013-7-17 10:08:42 | 显示全部楼层 |阅读模式
这个图片地址如下
[XHTML] 纯文本查看 复制代码
https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=sjrand&0.8967564508222368

大家看清楚了,是Https的网站,也就是说是需要证书才能访问了,这个只要获取证书就行了,方法如下
先直接在浏览器输入这个网站然后回车
QQ截图20130717100038.jpg
然后再单击如下图片位置
QQ截图20130717100200.jpg
会出现如下界面
QQ截图20130717100222.jpg
我我选择详细信息里面的 复制到文件
QQ截图20130717100235.jpg
在下一步之后选择第二项目,就是Base64编码
QQ截图20130717100252.jpg
给证书选择一个存放的位置这也是一会儿写代码时需要的位置
QQ截图20130717100305.jpg
然后下一步单击完成就行了
QQ截图20130717100314.jpg
看到这个时表示你成功了。
使用Httphelper的代码如下
[C#] 纯文本查看 复制代码
        /// <summary>
        /// 字节数组生成图片
        /// </summary>
        /// <param name="Bytes">字节数组</param>
        /// <returns>图片</returns>
        private Image byteArrayToImage(byte[] Bytes)
        {
            MemoryStream ms = new MemoryStream(Bytes);

            Image outputImg = Image.FromStream(ms);
            return outputImg;

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=sjrand&0.8967564508222368",//URL     必需项    
                Method = "get",//URL     可选项 默认为Get   
                CerPath = "D:\\123.cer",//证书绝对路径     可选项不需要证书时可以不写这个参数      
                ResultType = ResultType.Byte
            };
            HttpResult result = http.GetHtml(item);
            //获取到的图片
            Image im = byteArrayToImage(result.ResultByte);
            pictureBox1.Image = im;
        }

执行效果如下
QQ截图20130717100731.jpg
千完不要再说是我的类有Bug了,呵呵
到这里问题就解决了。
原理大家可以看这里
http://www.sufeinet.com/thread-215-1-1.html



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-7-17 10:13:35 | 显示全部楼层

飞哥杠杠的。
发表于 2013-7-17 10:31:13 | 显示全部楼层
最简单的方法就是把Https改成Http
https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=sjrand&0.8967564508222368
修改为
http://dynamic.12306.cn/otsweb/passCodeAction.do?rand=sjrand&0.8967564508222368
 楼主| 发表于 2013-7-17 10:50:56 | 显示全部楼层
HUGO.CM 发表于 2013-7-17 10:31
最简单的方法就是把Https改成Http
https://dynamic.12306.cn/otsweb/passCodeAction.do?rand=sjrand&0.896 ...

这种方法我估计是巧了,好些网站是不可以访问的。呵呵,这个解决方法确实简单。不赖
发表于 2013-7-19 20:45:57 | 显示全部楼层
感谢分享,哈哈~一下子就搜到了
发表于 2013-7-19 20:46:45 | 显示全部楼层
站长苏飞 发表于 2013-7-17 10:50
这种方法我估计是巧了,好些网站是不可以访问的。呵呵,这个解决方法确实简单。不赖

飞哥,另外问下貌似那个httphelp类不能用在 控制台程序中吧?也是提示连接关闭。
发表于 2013-7-19 21:10:10 | 显示全部楼层
站长苏飞 发表于 2013-7-17 10:50
这种方法我估计是巧了,好些网站是不可以访问的。呵呵,这个解决方法确实简单。不赖

飞哥,按你的方法还是不行?是不是过期了?麻烦试试。
 楼主| 发表于 2013-7-19 21:16:16 | 显示全部楼层
zhwq107 发表于 2013-7-19 21:10
飞哥,按你的方法还是不行?是不是过期了?麻烦试试。

这是个类和控制台没关系,是什么不行,说清楚
发表于 2013-7-20 17:59:20 | 显示全部楼层
站长苏飞 发表于 2013-7-19 21:16
这是个类和控制台没关系,是什么不行,说清楚

飞哥,我看了这个帖子,尝试实现一下12306的登陆功能,可是在验证码以及loginRand的获取后,与登陆POST的提交同步遇到了问题。

貌似是无法获取到所需要的cookie同步,不知道这个怎么解决?

cookie 中只有 JSESSIONID=62C2D48AA6505CCA24F963E7767F17DE; BIGipServerotsweb=2178154762.22560.0000
发表于 2013-8-8 13:29:21 | 显示全部楼层
http也出现基础链接已关闭的情况是怎么回事呢?王解答
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-22 14:26

© 2014-2021

快速回复 返回顶部 返回列表