解决HttpWebRequest访问https请求被中止: 未能创建 SSL/TLS 安全通道

处理HttpWebRequest访问https有安全证书的问题( 请求被中止: 未能创建 SSL/TLS 安全通道。)只需加上以下两行代码就行了。//处理HttpWebRequest访问https有安全证书的问题( 请求被中止: 未能创建 SSL/TLS 安全通道。)ServicePointManager.ServerCertificateValidation…

处理HttpWebRequest访问https有安全证书的问题( 请求被中止: 未能创建 SSL/TLS 安全通道。)

只需加上以下两行代码就行了。

 

//处理HttpWebRequest访问https有安全证书的问题( 请求被中止: 未能创建 SSL/TLS 安全通道。)
ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

以上代码是.Net 4.5以上版本可以直接使用。

.Net 4.0版本使用下面代码

ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;

示例:

    /*发送微信订阅通知消息*/
        private string sendWxNotify(string name,string tel,int goodsId, HttpContext context)
        {
            ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
            ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;

            HttpWebRequest requet = (HttpWebRequest)WebRequest.Create("https://xx/postmessage?key=ad&name="+name+"&tel="+tel+"&id="+goodsId.ToString());
            requet.Method = "GET";
           
            using (HttpWebResponse response = (HttpWebResponse)requet.GetResponse()) 
            {
                StreamReader sr = new System.IO.StreamReader(response.GetResponseStream(), Encoding.Default);
              return  sr.ReadToEnd();
            }
            return "";
        }

 

 

来源:http://geobook.net/news/show-1097.html

posted @ 2021-03-01 11:39  fogwu  阅读(3890)  评论(0编辑  收藏  举报