C# 如何处理HttpClient上不断发生SSL/TLS证书错误的情况,即使我重写了委托?
我有以下代码片段。我想我已经成功地覆盖了这个URL的SSL/TLS检查,但是我仍然得到了expception。我做错了什么 我也知道我的异步逻辑不好,以后再处理吧!:) 我尝试调用的URL之一是: 我收到的错误消息是: 请求被中止:无法创建SSL/TLS安全通道 位于System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)C# 如何处理HttpClient上不断发生SSL/TLS证书错误的情况,即使我重写了委托?,c#,asp.net,C#,Asp.net,我有以下代码片段。我想我已经成功地覆盖了这个URL的SSL/TLS检查,但是我仍然得到了expception。我做错了什么 我也知道我的异步逻辑不好,以后再处理吧!:) 我尝试调用的URL之一是: 我收到的错误消息是: 请求被中止:无法创建SSL/TLS安全通道 位于System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 在System.Net.Http.HttpClientHandler.GetResponseCal
在System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)中,您会遇到什么异常?有时不是证书导致问题,而是客户端和服务器上支持的协议之间的不匹配。如果没有错误消息,这几乎是一个猜测游戏。我首先要删除“handler.ClientCertificateOptions=ClientCertificateOptions.Manual”;我想我可能已经有了它。我认为我们的CDN不再接受SSL3.0了,添加它似乎可以修复下载。handler.UseCookies=false;handler.ServerCertificateValidationCallback+=(发件人、证书、链、sslPolicyErrors)=>true;ServicePointManager.Expect100Continue=true;ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12;
filename = uri.LocalPath;
using (var handler = new WebRequestHandler())
{
handler.UseCookies = false;
handler.ClientCertificateOptions = ClientCertificateOption.Manual;
handler.ServerCertificateValidationCallback +=
(sender, cert, chain, sslPolicyErrors) => true;
using (var client = new HttpClient(handler))
{
client.DefaultRequestHeaders.Add("Cookie",
HttpContext.Current.Request.Headers["Cookie"].ToString());
client.BaseAddress = uri;
var response = client.GetAsync(uri).Result;