HttpWebRequest GET HTTPS页面出现IOException: 由于远程方已关

来源:未知 责任编辑:责任编辑 发表时间:2014-05-26 11:00 点击:

再使用 HttpWebRequest 请求 https 协议的页面时,默认情况下会出现 “IOException: 由于远程方已关闭传输流,身份验证失败。的错误”,网上也有一些方法,说是使用

C# 代码
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
可以解决问题,但有时候,使用这个仍是不行的,需要加
C# 代码
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
设置ServicePointManager 对象管理的 ServicePoint 对象所使用的安全协议,它是一个枚举值。下面是一个完整的例子
C# 代码
string url = "http://www.2cto.com/kf/201204/127933.html";   
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);   
myRequest.Method = "GET";
myRequest.Proxy = null;
myRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0";
myRequest.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.8,zh-hk;q=0.6,ja;q=0.4,zh;q=0.2");
myRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
//ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; //这行没用
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
Response.Write(new System.IO.StreamReader(myResponse.GetResponseStream(),Encoding.GetEncoding("GB2312")).ReadToEnd());

 
作者 孟宪会

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • C#高级编程:数据库连接[1]
    • asp.net 设置GridView的选中行的实现代码
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET GridView列表代码示例
    • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1