(微信API接口开发) 使用HttpWebRequest进行请求时发生错误:基础连接已关闭,发送时发生错误处理

时间:2024-02-21 14:19:54

最近调试原来的微信模拟登陆时发生了“基础连接已关闭,发送时发生错误”的错误提示,原来都是好好的,只是很久没用了。

出错代码如下:

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN");///cgi-bin/loginpage?t=wxm2-login&lang=zh_CN  
            req.CookieContainer = cookie;  
            req.Method = "GET";  
            req.ProtocolVersion = HttpVersion.Version10;  
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();  
            StreamReader rd = new StreamReader(res.GetResponseStream());  
            string theContent = rd.ReadToEnd();  

  

经过一番Google和试验,答案既如此简单,增加如下一句:

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

1 req.CookieContainer = cookie;  
2             req.Method = "GET";  
3             req.ProtocolVersion = HttpVersion.Version10;  
4            ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;  
5             HttpWebResponse res = (HttpWebResponse)req.GetResponse();  
6             StreamReader rd = new StreamReader(res.GetResponseStream());  
7             string theContent = rd.ReadToEnd();  

 

微信支付退款时,报错 "基础连接已经关闭: 连接被意外关闭"

使用一下方法调用证书就能解决错误(实测环境Windows2003)

X509Certificate2 certificate = new X509Certificate2(PATH_TO_CERTIFICATE, PASSWORD, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);

 

转自:http://blog.csdn.net/hawksoft/article/details/21776009