[C#] 使用HttpClient請求https地址報錯的解決方案

當使用HttpClient請求HTTPS地址遇到報錯時,下面將解析并提供可能的解決方案供參考。

文章目錄

  • 異常代碼
    • 無法定位錯誤的
    • 準確定位錯誤的
  • 常見錯誤
    • 錯誤1
    • 錯誤2
  • 解決問題
      • 生產環境
      • 開發環境

異常代碼

首先,需要查看引發異常的代碼部分,

無法定位錯誤的

以下代碼拋出的異常,是無法定位錯誤的

HttpResponseMessage httpResponse = client.GetAsync(url).Result;

準確定位錯誤的

應改成這樣

HttpResponseMessage responseMessage = client.GetAsync(url).GetAwaiter().GetResult();

由此可見,通過捕獲拋出的異常并獲取其中的錯誤信息,就可以準確定位到問題的所在。

常見錯誤

當遇到問題時,要準確地定位到錯誤所在。

如果錯誤屬于以下兩種情況中的任何一種,

錯誤1

根據驗證過程,遠程證書無效。

錯誤2

基礎連接已經關閉: 未能為 SSL/TLS 安全通道建立信任關系。

解決問題

以前普遍使用http請求, 現在https加密請求需要證書了,

如使用https請求操作不當,會引發證書信任問題,

要解決安全證書信任問題, 主要看使用環境

生產環境

如果是在生產安全環境用的, 就配置信任的證書,

添加代碼如下


System.Net.ServicePointManager.Expect100Continue = true;
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls;client = new HttpClient();

開發環境

如果是在本地測試的, 可以先忽略安全證書信任問題

添加代碼如下

var hander = new HttpClientHandler() { UseCookies = false, //設置為false,登陸后重定向的話不會自動帶上cookies,需要手動給headers上加入cookies.AllowAutoRedirect = true
};hander.ClientCertificateOptions = ClientCertificateOption.Automatic;
//hander.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) =>
System.Net.ServicePointManager.ServerCertificateValidationCallback = (message, cert, chain, errors) =>
{// 在這里添加你的證書驗證邏輯// 例如,永遠返回true來允許所有證書(不推薦用于生產環境)return true;
};client = new HttpClient(hander);

寫到這里,問題差不多就能得到解決了。

來出一道題娛樂一下吧, 知道下圖中是什么游戲嗎
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10798.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10798.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10798.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android Compose 一:基礎控件

Flutter 與 Compose 組件辣么像,難道是同一個google團隊整的;也未深究,只是猜測。 創建項目 需要使用新版本Android studio,忽略步驟… 項目目錄 MainActivity說明 1 系統默認頁面 Preview 修飾的方法,只用來供開發…

VUE.JS詳細的使用方法

Vue.js是一個輕量級的前端JavaScript框架&#xff0c;它用于構建用戶界面和單頁應用。以下是Vue.js的基本使用方法和幫助。 安裝Vue.js 使用npm: npm install vue使用CDN: <script src"https://cdn.jsdelivr.net/npm/vue2.6.14/dist/vue.min.js"></script&…

撤銷 git add 操作(忽略被追蹤的文件)

文章目錄 引言I git rm命令來取消暫存【推薦】II 撤銷特定文件的暫存狀態2.1 git rese2.2 git restoresee also引言 應用場景: 修改.gitignoregitignore只能忽略那些原來沒有被追蹤的文件,如果某些文件已經被納入了版本管理中,則修改.gitignore是無效的。那么解決方法就是先…

Kruskal算法刷題筆記

理論基礎&#xff1a; 例題&#xff1a; 卡碼網---53&#xff1a;尋寶 題目 題目描述 在世界的某個區域&#xff0c;有一些分散的神秘島嶼&#xff0c;每個島嶼上都有一種珍稀的資源或者寶藏。國王打算在這些島嶼上建公路&#xff0c;方便運輸。 不同島嶼之間&#xff0c…

精選多個炫酷的數據可視化大屏(含源碼),拿走就用~

末尾有鏈接 演示地址&#xff1a;可視化大數據展示中心 (null.fit) 可視化大數據展示模板-科技語者 (chgskj.cn)

block性能考慮和線程安全

性能考慮 頻繁地創建和銷毀大量的 block 可能會對性能造成影響&#xff0c;特別是當這些 block 被拷貝到堆上時。同時&#xff0c;block 捕獲大量數據時也會增加內存使用。 在討論性能考慮時&#xff0c;主要關注的是 block 的創建、拷貝到堆上以及捕獲變量的成本。以下是針對…

【Java】:方法重寫、動態綁定和多態

目錄 一個生動形象的例子 場景設定 1. 方法重寫&#xff08;Method Overriding&#xff09; 2. 動態綁定&#xff08;Dynamic Binding&#xff09; 3. 多態&#xff08;Polymorphism&#xff09; 歸納關系&#xff1a; 重寫 概念 條件 重寫的示例 重載與重寫的區別 …

CUDA is not availabe on this machine.

assert torch.cuda.is_available(), "CUDA is not availabe on this machine." AssertionError: CUDA is not availabe on this machine. 這個錯誤信息表明你嘗試在PyTorch中使用CUDA&#xff08;也就是NVIDIA的GPU加速&#xff09;&#xff0c;但是你的機器上似乎沒…

libssh C++封裝之七(File)

1 概述 libssh是一個在客戶端和服務器端實現SSHv2協議的多平臺C庫。使用libssh,您可以遠程執行程序、傳輸文件、使用安全透明的隧道、管理公鑰等等。本文描述的對libssh客戶端功能的C++封裝。 libssh下載地址 3 實現 3.6 File File類型可以讀寫遠程文件。 3.6.1 File定義 …

使用rsync+lnotify實現遠程數據實時同步備份

目錄 1、定時備份與實時備份區別 2、配置客戶端 2.1、在客戶端安裝inotify-tools軟件。以便提供inotifywait inotifywatch 輔助工具程序 2.2 驗證&#xff1a;監控客戶端/data_backup目錄的變化 2.3 編寫自動同步腳本 2.4 后臺運行腳本 2.5 驗證數據實時同步效果 1、定…

【JS面試題】call - apply - bind

推薦嗶站一個老師的視頻講解&#xff0c;非常詳細易懂&#xff0c;5分鐘學會&#xff01;前端面試題&#xff1a;call、apply、bind的基本概念 這三個都是函數的方法&#xff0c;用來改變函數中的this指向&#xff01; 關于call的使用&#xff1a;&#xff08;3個方法類似&am…

SpringCloud:服務拆分和遠程調用

程序員老茶 &#x1f648;作者簡介&#xff1a;練習時長兩年半的Java up主 &#x1f649;個人主頁&#xff1a;程序員老茶 &#x1f64a; P? ?S : 點贊是免費的&#xff0c;卻可以讓寫博客的作者開心好久好久&#x1f60e; &#x1f4da;系列專欄&#xff1a;Java全棧&#…

使用socat做端口轉發

最近買的云上mongo數據庫但是數據庫不支持外網訪問&#xff0c;準備做iptables轉發但是一直不成功&#xff0c;騰訊云官方給予的解釋是受服務器內啟動的docker影響 做iptables轉發會沖突&#xff0c;所以只能另想辦法&#xff0c;我發現使用socat做轉發也很好用&#xff0c;所以…

JAVA_4

JAVA_4 一、JAVA內存總體架構二、棧的特點如下三、堆的特點如下四、方法區&#xff08;又叫靜態區&#xff0c;也是堆&#xff09;特點如下五、this的本質 一、JAVA內存總體架構 多個線程里面有&#xff1a;程序計數器、虛擬機棧、本地方法棧方法區&#xff1a;運行時常量池堆…

FPGA相關論文閱讀

一、Achieving 100Gbps Intrusion Prevention on a Single Server 論文名稱中文翻譯&#xff1a;在單臺服務器上實現100Gbps吞吐量的入侵防御檢測。 文章中的Mixed-1和Norm-1 二、Distributed Password Hash Computation on Commodity Heterogeneous Programmable Platforms…

【回溯 字典樹(前綴樹)】212. 單詞搜索 II

本文涉及知識點 回溯 字典樹&#xff08;前綴樹&#xff09; LeetCode212. 單詞搜索 II 給定一個 m x n 二維字符網格 board 和一個單詞&#xff08;字符串&#xff09;列表 words&#xff0c; 返回所有二維網格上的單詞 。 單詞必須按照字母順序&#xff0c;通過 相鄰的單元…

第3周 后端微服務基礎架構與前端項目聯調配備

第3周 后端微服務基礎架構與前端項目聯調配備 1. 微服務項目層次設計與Maven聚合1.1 項目層次設計1.2 父項目pom1.2.1 打包方式 1.3 創建通用 ************************************************************************************** 1. 微服務項目層次設計與Maven聚合 1.1…

電商平臺遭遇DDOS、CC攻擊有什么防護方案

電商平臺遭遇DDOS、CC攻擊有什么防護方案&#xff1f;在數字化浪潮的推動下&#xff0c;電商平臺已成為現代商業的重要組成部分&#xff0c;為消費者提供便捷、多樣的購物體驗。然而&#xff0c;隨著業務的發展&#xff0c;電商平臺也面臨著日益嚴峻的網絡安全挑戰&#xff0c;…

Tower for Mac:Git管理的新境界

Tower for Mac&#xff0c;讓您的Git管理進入新境界&#xff01;這款專為Mac用戶打造的Git客戶端&#xff0c;憑借其出色的性能和豐富的功能&#xff0c;成為眾多開發者的首選工具。 Tower不僅支持常規的Git操作&#xff0c;如提交、推送和拉取&#xff0c;還提供了許多高級功能…

四、VGA項目:聯合精簡幀+雙fifo+sobel算法 實現VGA顯示

前言&#xff1a;該項目實際上是在很多基礎的小練習上合成起來的&#xff0c;例如涉及到uart&#xff08;rs232&#xff09;的數據傳輸、雙fifo流水線操作、VGA圖像顯示&#xff0c;本次內容在此基礎上又增添了sobel算法&#xff0c;能實現圖像的邊沿監測并VGA顯示。 文章目錄…