|
本帖最后由 jsjrsxpwr 于 2016-1-24 23:45 编辑
前面有人咨询这个帖子:http://www.sufeinet.com/thread-13076-1-1.html
站长给出了解决方案:http://tool.sufeinet.com/HttpHel ... s://www.taobao.com/
根据万能框架,自动生成的代码:
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = "https://lsp.wuliu.taobao.com/locationservice/addr/output_address_town_array.do?l1=340000&l2=340102",//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 = "http://www.sufeinet.com",//来源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,//ResultType.String,//返回数据类型,是Byte还是String
ProtocolVersion = System.Net.HttpVersion.Version11,
};
HttpResult result = http.GetHtml(item);
string html = result.Html;-----------------------------------------------------------------------
tool.sufeinet.com 返回结果完全正确,但是我本地测试:
MessageBox.Show(html);
本地始终基础连接已经关闭: 发送时发生错误
加入网上百度到的方案:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; 这个是错的,淘宝用的是或 tls1.2返回结果是:
<!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)XP下.NET 4.0 无此问题。 64位WIN7有问题。
(2)可能用.NET 4.5 可以解决,请有条件的朋友测试下,谢谢
net 4.5 设置: ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls1.2;
|
|