当前位置:编程学习 > asp >>

HttpWebRequest GET HTTPS页面出现IOException: 由于远程方已关闭传输流,身份验证失败。错误的解决方法

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

C# 代码
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
可以解决问题,但有时候,使用这个仍是不行的,需要加
C# 代码
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
设置ServicePointManager 对象管理的 ServicePoint 对象所使用的安全协议,它是一个枚举值。下面是一个完整的例子
C# 代码
string url = "http://www.zzzyk.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());

 
作者 孟宪会

补充:Web开发 , ASP.Net ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,