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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 13190|回复: 13

[HttpHelper] 关于请求部分https的问题

[复制链接]
发表于 2015-11-18 10:53:22 | 显示全部楼层 |阅读模式
本帖最后由 yisa 于 2015-11-18 10:58 编辑

用万能框架请求微信,会提示
The underlying connection was closed: An unexpected error occurred on a send.

。我用http://tool.sufeinet.com/HttpHelper.aspx 上请求,返回正常
123-2.jpg

从上面生成的代码。直接复制到winform下就会提示错误,无法请求。错误就是上面的一串英文。
123.jpg
同样的代码,同样的框架,论坛里也有类似的问题,我只要打开HttpAnalyzer抓包工具,就能返回html

所以我怀疑是https的问题,但是不管怎么操作,我也搜索了几天的资料, 一直未解决。
包括安全连接修改未TLS或者SSL3,什么http版本设置10或者11,都无法解决。

请求苏飞大哥帮助下。下面代码就是在线工具生成的,我直接复制到c#里也不行。但是在线工具上确可以请求,不知原因是什么。
[C#] 纯文本查看 复制代码
 HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
    URL = "https://wx.qq.com/",//URL     必需项
    Method = "GET",//URL     可选项 默认为Get
    Timeout = 100000,//连接超时时间     可选项默认为100000
    ReadWriteTimeout = 30000,//写入Post数据超时时间     可选项默认为30000
    IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写
    Cookie = "",//字符串Cookie     可选项
    UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0",//用户的浏览器类型,版本,操作系统     可选项有默认值
    Accept = "text/html, application/xhtml+xml, */*",//    可选项有默认值
    ContentType = "text/html",//返回类型    可选项有默认值
    Referer ="",//来源URL     可选项
    Allowautoredirect =false,//是否根据301跳转     可选项
    AutoRedirectCookie = false,//是否自动处理Cookie     可选项
    //CerPath = "d:\123.cer",//证书绝对路径     可选项不需要证书时可以不写这个参数
    //Connectionlimit = 1024,//最大连接数     可选项 默认为1024
    Postdata = "",//Post数据     可选项GET时不需要写
    //ProxyIp = "192.168.1.105:2020",//代理服务器ID     可选项 不需要代理 时可以不设置这三个参数
    //ProxyPwd = "123456",//代理服务器密码     可选项
    //ProxyUserName = "administrator",//代理服务器账户名     可选项
    ResultType = ResultType.String,//返回数据类型,是Byte还是String
};
HttpResult result = http.GetHtml(item);
string html = result.Html;
string cookie = result.Cookie;
textBox1.Text = html;



其实请求https的淘宝也时长出现抽风,有些电脑可以,有些直接返回错误。重新做系统又可以了,具体什么原因到现在也找不到,应该都是https造成的,但是具体怎么解决,从哪方面着手没有头绪。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-11-18 12:00:20 | 显示全部楼层
本地证书的问题,安装一下最新的证书就行了
 楼主| 发表于 2015-11-18 12:17:04 | 显示全部楼层
站长苏飞 发表于 2015-11-18 12:00
本地证书的问题,安装一下最新的证书就行了

本地安装证书?那如果程序发给别人呢?
 楼主| 发表于 2015-11-18 12:18:21 | 显示全部楼层
本帖最后由 yisa 于 2015-11-18 12:40 编辑
站长苏飞 发表于 2015-11-18 12:00
本地证书的问题,安装一下最新的证书就行了

我测试了下,本地重新安装证书,仍然一样。
IE可以访问,你的在线工具可以请求返回(你的服务器应该不会存在安装证书问题吧?),但是放到winform就不行 好折磨,在线等。

http://www.sufeinet.com/thread-11804-1-1.html
这个帖子里也出现过类似的,我也是开启抓包工具就可以,关闭就请求不到。


发表于 2015-11-18 13:03:59 | 显示全部楼层
yisa 发表于 2015-11-18 12:18
我测试了下,本地重新安装证书,仍然一样。
IE可以访问,你的在线工具可以请求返回(你的服务器应该不会 ...

我的服务器肯定是我配置过,信不用由你定,另外你用的是不是最新版的,这个是个本地环境有关系的。要具体情况具体分析的,到不同的电脑上看报什么错。然后再具体解决,另外微信如果检查到你的环境存在不安全因素也是会直接拒绝服务的。

通过个信提示
The underlying connection was closed: An unexpected error occurred on a send.

可以确认这个有两个原因,第一Net版本不对,或者是缺少文件,引起的。不要跟我说运行其实.net程序没有问题,运动这个就有问题,那是因为这个用到了通信,其他的没用到。.

另外就是你本地的可能使用了代理。
 楼主| 发表于 2015-11-18 13:19:20 | 显示全部楼层
本帖最后由 yisa 于 2015-11-18 13:30 编辑
站长苏飞 发表于 2015-11-18 13:03
我的服务器肯定是我配置过,信不用由你定,另外你用的是不是最新版的,这个是个本地环境有关系的。要具体 ...

我没有其他意思,也感谢回复。主要是想找原因啊?

我先说下情况是怎样的。
1、我用IE,或者其他浏览器登录https://wx.qq.com 是正常的(排除你说的微信拒绝服务,每次都清空了缓存和cookie测试,都没有任何问题)
2、如果我打开抓包工具,一样的代码就可以请求到,关闭抓包工具就请求不到(可能是抓包工具打开后配置了什么或者进行了什么操作,目前未知,这也是最让我不明白的)
3、我在本地的两台电脑,两台服务器均测试过,都请求不到(我本地装的软件和其他电脑或者服务器都不一样,存在相同的问题的几率很小吧)
4、我用苏飞在线工具正常,下载苏飞助手不正常。(这又绕回去到原始问题了)
5、本地并没有使用任何代理。
6、net版本是4.0(因为用了万能框架,不是这个版本也运行不起来),编译是win7。编译的exe分别测试了win7、win2008系统(服务器上)均不行。
7、缺少文件情况下,也不大可能,就像第2点说的一样。
8、我用的框架分别是1.6 1.7 1.8 全部测试过了。

其实我大概意思是,你能否本地用winform试试呢? 或者说在线工具上配置了什么用的是哪个版本的库呢?主要是想找到原因解决啊。苏飞帮下忙啊。
这个问题我在提问之前自己摸索了几天了,实在不行才上来求助的。


测试微信HTTPS.zip (204.37 KB, 下载次数: 47)
 楼主| 发表于 2015-11-18 16:28:20 | 显示全部楼层
本帖最后由 yisa 于 2015-11-18 16:29 编辑

最新情况是:前提情况是同一个exe
1、win7旗舰版sp1(一个渠道下载的),不管是64位还是32位,都不能执行。(新用虚拟机安装的新系统,除了补丁和net4.0什么都不装的情况) 另外一个win7 从msdn原版下载(和前两个不是一个渠道下载),也不行。但是有人用的win7 32位(有人加我QQ说可以运行,据说也是旗舰版) 。
2、在虚拟机上2003、xp、win8,安装net4.0后,测试可以运行。
3、win2008server(服务器版)两台不同机房的,一台阿里云的正版授权系统,一台其他机房的,都不可以运行。

具体什么原因还是没有找到。
这让我想起来之前发布的一个软件,访问淘宝的https,很多人也是出现这个问题(这些人都不在一个地区,也不是一类人,不可能有什么软件冲突造成的),我之前都是让他们换电脑解决的。

现在都很晕了,目前进展到这个情况,公布出来,如果有人遇见或者解决了这种问题,麻烦回帖分享。


发表于 2015-11-18 20:59:09 | 显示全部楼层
测试过代码是可以正常获取的
 楼主| 发表于 2015-11-19 16:54:46 | 显示全部楼层
21341234 发表于 2015-11-18 20:59
测试过代码是可以正常获取的

什么系统呢?可以说下吗?
发表于 2015-11-19 19:54:39 | 显示全部楼层
yisa 发表于 2015-11-19 16:54
什么系统呢?可以说下吗?


您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-11-15 17:15

© 2014-2021

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