使用HttpWebRequest请求https链接时,无法访问的问题,设置ServicePointManager.SecurityProtocol安全协议

//请求前设置一下使用的安全协议类型 System.Net
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)){ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback((object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) =>{return true; //总是接受  });ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
}
namespace System.Net
{[System.Flags]public enum SecurityProtocolType{Ssl3 = 48,Tls = 192,Tls11 = 768,Tls12 = 3072,}
}

c# .net 4.0 HttpWebRequest 访问https TLS1.2 解决方案

    public static string DoRequest(string Url, string cookieStr){HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);request.Timeout = 1000 *900;request.Headers.Add(HttpRequestHeader.Cookie, cookieStr);request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36";ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;// SecurityProtocolType.Tls1.2;string back ="";try {WebResponse response = request.GetResponse();StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);back = reader.ReadToEnd();reader.Close();reader.Dispose();response.Close();}catch(Exception ex){back = ex.Message;}return back;}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部