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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 10388|回复: 7

[求助] 飞哥,httphelper模拟登录.在不同电脑结果不同.被困绕几天

[复制链接]
发表于 2016-2-24 11:09:47 | 显示全部楼层 |阅读模式
本帖最后由 eageag 于 2016-2-24 12:03 编辑

@站长苏飞
飞哥,有个问题,困绕我好几天了,弄了好几天都没弄出来,才来找你。

我在用httphelper的时候,

HttpHelper httphelper = new HttpHelper();

HttpItem item = new HttpItem();
item.URL = "https://login.taobao.com/member/login.jhtml?style=b2b&from=b2b&newMini=true&full_redirect=true&redirect_url=https%3A%2F%2Flogin.1688.com%2Fmember%2Fjump.htm%3Ftarget%3Dhttps%253A%252F%252Flogin.1688.com%252Fmember%252FmarketSigninJump.htm%253FDone%253Dhttp%25253A%25252F%25252Fwork.1688.com%25252Fhome%25252Fpage%25252Findex.htm®=http%3A%2F%2Fmember.1688.com%2Fmember%2Fjoin%2Fenterprise_join.htm%3Flead%3Dhttp%253A%252F%252Fwork.1688.com%252Fhome%252Fpage%252Findex.htm%26leadUrl%3Dhttp%253A%252F%252Fwork.1688.com%252Fhome%252Fpage%252Findex.htm%26tracelog%3Dnotracelog_s_reg";

HttpResult result = httphelper.GetHtml(item);
string wc1 = result.Html;


A:在一台电脑上,是正常的,
B:在另一台电脑上,就出现:
基础连接已经关闭: 发送时发生错误。


请帮我诊断一下,感谢

如果我在 private void SetCer(HttpItem item)方法里加上下面的代码,
就会被重定向到提示我要升级浏览器版本。

ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
如果把URL改为:https://login.1688.com/member/signin.htm?Done=http%3A%2F%2Fwork.1688.com%2Fhome%2Fpage%2Findex.htm
获取出来的html结果是这样的,被定为302了
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>302 Found</title>
</head>
<body bgcolor="white">
<h1>302 Found</h1>
<p>The requested resource resides temporarily under a different URI.</p>
<hr/>Powered by Tengine
</body>
</html>


感谢飞哥帮忙诊断一下。





1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2016-2-24 12:37:38 | 显示全部楼层
302 Found去看Header里有Location属性有跳转的具体地址,可以手动跳转一下的
发表于 2016-2-24 12:43:18 | 显示全部楼层
我只是路过打酱油的。
 楼主| 发表于 2016-2-24 12:57:23 | 显示全部楼层
站长苏飞 发表于 2016-2-24 12:37
302 Found去看Header里有Location属性有跳转的具体地址,可以手动跳转一下的

跳转到这里:https://www.taobao.com/markets/t ... %3Dnotracelog_s_reg

温馨提醒:您当前的浏览器版本过低,存在安全风险,建议升级浏览器

提示升级浏览器
发表于 2016-2-24 13:08:39 | 显示全部楼层
userageng里带的浏览器版本过低,可以修改的高一点试试
 楼主| 发表于 2016-2-24 13:19:46 | 显示全部楼层
站长苏飞 发表于 2016-2-24 13:08
userageng里带的浏览器版本过低,可以修改的高一点试试

试过这些,都不行,

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)
Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; .NET CLR 2.0.50727)

我还测试过,
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
用了Ssl3就会重定向到:提示升级浏览器

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
用了Tls就是提示:基础连接已经关闭: 发送时发生错误。
 楼主| 发表于 2016-2-24 13:46:36 | 显示全部楼层
eageag 发表于 2016-2-24 13:19
试过这些,都不行,

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)

经过测试发现,因为是https请求,所以加了这句 :  
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

然后就出现应答 浏览器版本太低

如果不加这句,则报错说:  基础连接已经关闭: 发送时发生错误

谢谢,望不吝赐教
 楼主| 发表于 2016-2-24 15:06:34 | 显示全部楼层
本帖最后由 eageag 于 2016-2-24 15:09 编辑

我在IE浏览器上,试了一下,关闭Tls1.0,Tls1.1,Tls1.2,用浏览器打开上面的网址,都会无法访问。

而关闭Tls1.0,Tls1.1,Tls1.2,只户用Ssl3.0协议,就会跳转到:升级浏览器那个页面。


目前确定,要使用Tls协议才行,就是要解决怎样处理提示:基础连接已经关闭: 发送时发生错误。


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

本版积分规则

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

GMT+8, 2024-12-22 19:16

© 2014-2021

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