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

服務(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ù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩在线一区二区三区 | 841995论坛网站2022年 | 国产经典一区二区三区蜜芽 | 日本福利片国产午夜久久 | 欧美性野久久久久久久久 | 日本xxxxx高清免费观看 | 美女福利视频午夜在线 | 亚洲成熟人网站 | 亚洲AV无码专区国产乱码网站 | 日本高清在线看免费观看 | 成人女人天堂午夜视频 | 午夜伦午夜伦锂电影 | 午夜伦理电影在线观免费 | 免费日批视频 | 国产精品www视频免费看 | 青草草视频在线观看 | 国产成人精品午夜在线播放 | 男人好大好硬好爽免费视频 | 欧美成人三级伦在线观看 | 人阁色第四影院在线观看 | 日本高清在线不卡 | 四虎国产精品免费久久麻豆 | 亚洲国产成人精品激情 | 久久内在线视频精品mp4 | bbbxxx乱大交欧美小说 | 22sihu国产精品视频影视资讯 | 色综合伊人色综合网站中国 | 亚洲国产精品久久丫 | 男人猛进女人屁股免费 | 色老汉 | 男女肉粗暴进来下面好紧 | 超级乱淫伦短篇在车上 | heyzo在线观看 | 成人观看免费大片在线观看 | 四虎国产成人亚洲精品 | 国产成人在线播放视频 | 免费观看网站 | 亚洲精品乱码久久久久久蜜桃欧美 | 日本不卡一区二区三区在线观看 | 成版人快猫永久破解版 | 亚洲AV人无码综合在线观看蜜桃 |