国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 12:48:34
字體:
來源:轉載
供稿:網友

問題

使用 HTTP Client 請求 HTTPS 的 API 時出現 The certificate cannot be verified up to a trusted certification authority 異常,并且證書已經傳入。

下面就是問題代碼:

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); }}

原因

因為在發出 HTTPS 請求的時候,HttpClient 都會檢查 SSL 證書是否合法。如果不合法的話,就會導致拋出異常信息,而對方給出的證書是自簽發的測試接口的證書,所以不是一個合法的 SSL 證書。

解決

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

最新的代碼如下:

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"); }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁武县| 无棣县| 锦州市| 奉贤区| 清新县| 浦东新区| 耿马| 富锦市| 南昌县| 芜湖市| 壤塘县| 上高县| 蓬安县| 枣强县| 隆尧县| 松江区| 廊坊市| 察隅县| 霍州市| 赫章县| 德化县| 吉木萨尔县| 安庆市| 仙游县| 凌云县| 修武县| 钟祥市| 丹棱县| 青川县| 石景山区| 玉田县| 炉霍县| 宜兴市| 夏河县| 老河口市| 亳州市| 榆中县| 嘉峪关市| 宁国市| 马龙县| 太康县|