以前一直用的一套看指定网页的源代码的,今天突然报了个错,

“System.Net.WebException”类型的未经处理的异常在 System.dll 中发生 

其他信息: 请求被中止: 未能创建 SSL/TLS 安全通道。

        private string GetWebClient(string url)
        {
            string strHTML = "";
            WebClient myWebClient = new WebClient();

            Stream myStream = myWebClient.OpenRead(url);
            StreamReader sr = new StreamReader(myStream, System.Text.Encoding.GetEncoding("utf-8"));
            strHTML = sr.ReadToEnd();
            myStream.Close();
            return strHTML;
        }

搜了下,解决方案:

先把框架提高到4.5

然后加了一行

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

private string GetWebClient(string url)
        {
            string strHTML = "";
            WebClient myWebClient = new WebClient();

            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            Stream myStream = myWebClient.OpenRead(url);
            StreamReader sr = new StreamReader(myStream, System.Text.Encoding.GetEncoding("utf-8"));
            strHTML = sr.ReadToEnd();
            myStream.Close();
            return strHTML;
        }

至于加的这行,文档:https://docs.microsoft.com/en-us/dotnet/api/system.net.securityprotocoltype?view=net-5.0

 

 

更多推荐