c#HttpWebRequest进行https的post请求握手失败

Author Avatar
幽浮404 4月26日
  • 在其它设备中阅读本文章

最近在用 HttpWebRequestpost 数据的时候发现 https 的请求总是会被远程主机关闭连接, 明明代码没动过之前也是 https 的 url 都是可以的啊, 然后抓包查看了一下发现是 Tls 握手失败了, 网站的用的 tls 是 Tls12,而我的框架是.net framework 4.0 是没有 tls12 的,随后把.net framework 升级成 4.5 在请求钱加上

 if (requestUrlString.StartsWith("https", StringComparison.OrdinalIgnoreCase))
        {
            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback((object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) =>
            {
                return true; //总是接受  
            });
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3  | SecurityProtocolType.Tls |SecurityProtocolType.Tls11 |SecurityProtocolType.Tls12;
        }

测试握手成功,post 成功!