一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - 詳解.NET Core 使用HttpClient SSL請求出錯(cuò)的解決辦法

詳解.NET Core 使用HttpClient SSL請求出錯(cuò)的解決辦法

2019-06-19 17:15myzony ASP.NET教程

這篇文章主要介紹了.NET Core 使用HttpClient SSL請求出錯(cuò)的解決辦法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

問題

使用 HTTP Client 請求 HTTPS 的 API 時(shí)出現(xiàn) The certificate cannot be verified up to a trusted certification authority 異常,并且證書已經(jīng)傳入。

下面就是問題代碼:

public class Program
{
 public static void Main(string[] args)
 {
  var url = @"https://xxx.xxx.xxx.xxx:xxxx/xxx-web/services/xxxx?wsdl";

  var handler = new HttpClientHandler
  {
   ClientCertificateOptions = ClientCertificateOption.Manual,
   ClientCertificates =
   {
    new X509Certificate2(@"E:\cert\rootTrust.cer","11111111"),
    new X509Certificate2(@"E:\cert\middleTrust.cer","11111111"),
    new X509Certificate2(@"E:\cert\wskey.pfx","ws654321")
   }
  };
  
  var webRequest = new HttpClient(handler);
  var result = webRequest.GetStringAsync(url).GetAwaiter().GetResult();
  Console.WriteLine(result);
 }
}

原因

因?yàn)樵诎l(fā)出 HTTPS 請求的時(shí)候,HttpClient 都會檢查 SSL 證書是否合法。如果不合法的話,就會導(dǎo)致拋出異常信息,而對方給出的證書是自簽發(fā)的測試接口的證書,所以不是一個(gè)合法的 SSL 證書。

解決

在 HttpClientHandler 當(dāng)中會有一個(gè) ServerCertificateCustomValidationCallback 事件,該事件用于判定證書驗(yàn)證是否通過。我們可以掛接該事件,然后邏輯編寫為直接返回 true 結(jié)果,這樣就會忽略掉證書異常的情況。

最新的代碼如下:

public class Program
{
 public static void Main(string[] args)
 {
  var url = @"https://xxx.xxx.xxx.xxx:xxxx/xxx-web/services/xxxx?wsdl";

  var handler = new HttpClientHandler
  {
   ServerCertificateCustomValidationCallback = (message, certificate2, arg3, arg4) => true, 
   ClientCertificateOptions = ClientCertificateOption.Manual,
   ClientCertificates =
   {
    new X509Certificate2(@"E:\cert\rootTrust.cer","11111111"),
    new X509Certificate2(@"E:\cert\middleTrust.cer","11111111"),
    new X509Certificate2(@"E:\cert\wskey.pfx","ws654321")
   }
  };
  
  var webRequest = new HttpClient(handler);
  var result = webRequest.GetStringAsync(url).GetAwaiter().GetResult();
  Console.WriteLine("xx");
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 五月婷婷在线免费观看 | 亚洲精品一区二区三区在线观看 | 把女的下面扒开添视频 | 湿好紧太硬了我太爽了 | 国产精品3p视频 | 人人澡 人人澡碰人人看软件 | 2021日本三级理论影院 | 女人被男人躁得好爽免费视频 | www亚洲国产 | 99久久精品免费观看区一 | ts人妖系列在线专区 | 国产成人亚洲精品乱码在线观看 | 欧美人妖草草xxoo | 久久最新地址获取 | 11 13加污女qq看他下面 | 精品精品国产yyy5857香蕉 | 情欲综合网 | 无人区乱码区1卡2卡三卡在线 | 秋霞717理论片在线观看 | 欧美亚洲综合另类 | 日本免费观看的视频在线 | 91久久国产视频 | 亚洲免费高清视频 | 国产在线视频欧美亚综合 | 亚洲国产精品一在线观看 | 欧美贵妇videos办公室 | 麻豆视频入口 | 花蝴蝶www | 欧美日韩精品在线视频 | 久久精品18 | 天天久久综合 | 小浪妇奶真大水多 | 毛片小视频 | 精品日产1区2卡三卡麻豆 | 亚洲精品成人A8198A片漫画 | 免费精品国产在线观看 | 美女在尿口隐私视频 | 偷拍自拍校园春色 | 色五月天天 | 亚洲国产综合自在线另类 | 99热精品久久 |