使用webclient和HttpWebRequest请求https页面时,有时会提示“基础连接已关闭,发送时发生错误”。分析所请求页面的header请求头,发现页面使用的是最新的安全连接 TLS 1.2 协议。
解决方法就是设置传输协议。在代码里面创建Request之前添加如下代码即可:
.net4.5:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
.net4.0:
req.ProtocolVersion = HttpVersion.Version11;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
.net4.0一下不支持TLS 1.2
信息网址:http://www.khcha.com/ziyuan/view16810.htm