国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【微軟技術(shù)棧】C#.NET 使用 HttpClient 類發(fā)出 HTTP 請(qǐng)求

這篇具有很好參考價(jià)值的文章主要介紹了【微軟技術(shù)棧】C#.NET 使用 HttpClient 類發(fā)出 HTTP 請(qǐng)求。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本文內(nèi)容

  1. 創(chuàng)建 HttpClient
  2. 發(fā)出 HTTP 請(qǐng)求
  3. 處理 HTTP 響應(yīng)
  4. HTTP 錯(cuò)誤處理
  5. HTTP 代理

本文介紹如何使用?HttpClient?類發(fā)出 HTTP 請(qǐng)求和處理響應(yīng)。

?重要

所有示例 HTTP 請(qǐng)求都以下面 URL 之一為目標(biāo):

  • https://jsonplaceholder.typicode.com:用于測(cè)試和原型設(shè)計(jì)的免費(fèi)虛設(shè) API。
  • https://www.example.com:此域用于文檔中的說明性示例。

HTTP 終結(jié)點(diǎn)通常返回 JavaScript 對(duì)象表示法 (JSON) 數(shù)據(jù),但并不總是如此。 為方便起見,可選的?System.Net.Http.Json?NuGet 包為使用?System.Text.Json?執(zhí)行自動(dòng)序列化和反序列化的?HttpClient?和?HttpContent?提供多個(gè)擴(kuò)展方法。 下面的示例提醒人們注意這些擴(kuò)展的可用位置。

1、創(chuàng)建?HttpClient

下面的大多數(shù)示例都重復(fù)使用同一?HttpClient?實(shí)例,因此只需配置一次。 要?jiǎng)?chuàng)建?HttpClient,請(qǐng)使用?HttpClient?類構(gòu)造函數(shù)。?

// HttpClient lifecycle management best practices:
// https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use
private static HttpClient sharedClient = new()
{
    BaseAddress = new Uri("https://jsonplaceholder.typicode.com"),
};

前面的代碼:

  • 實(shí)例化新的?HttpClient?實(shí)例作為?static?變量。 根據(jù)準(zhǔn)則,建議在應(yīng)用程序的生命周期內(nèi)重復(fù)使用?HttpClient?實(shí)例。
  • 將?HttpClient.BaseAddress?設(shè)置為?"https://jsonplaceholder.typicode.com"

發(fā)出后續(xù)請(qǐng)求時(shí),此?HttpClient?實(shí)例將使用基址。 若要應(yīng)用其他配置,請(qǐng)考慮:

  • 設(shè)置?HttpClient.DefaultRequestHeaders。
  • 應(yīng)用非默認(rèn)?HttpClient.Timeout。
  • 指定?HttpClient.DefaultRequestVersion。

?提示

或者,可使用工廠模式方法創(chuàng)建?HttpClient?實(shí)例,該方法允許配置任意數(shù)量的客戶端并將它們用作依賴關(guān)系注入服務(wù)。?

2、發(fā)出 HTTP 請(qǐng)求

要發(fā)出 HTTP 請(qǐng)求,請(qǐng)調(diào)用以下任一 API:

HTTP 方法 API
GET HttpClient.GetAsync
GET HttpClient.GetByteArrayAsync
GET HttpClient.GetStreamAsync
GET HttpClient.GetStringAsync
POST HttpClient.PostAsync
PUT HttpClient.PutAsync
PATCH HttpClient.PatchAsync
DELETE HttpClient.DeleteAsync
?USER SPECIFIED HttpClient.SendAsync

?USER SPECIFIED?請(qǐng)求指示?SendAsync?方法接受任何有效的?HttpMethod。

?警告

發(fā)出 HTTP 請(qǐng)求被視為是與網(wǎng)絡(luò) I/O 相關(guān)的工作。 雖然有同步?HttpClient.Send?方法,但建議改用異步 API,除非有充分的理由不這樣做。

2.1 HTTP 內(nèi)容

HttpContent?類型用于表示 HTTP 實(shí)體正文和相應(yīng)的內(nèi)容標(biāo)頭。 對(duì)于需要正文的 HTTP 方法(或請(qǐng)求方法)POST、PUT?和?PATCH,可使用?HttpContent?類來指定請(qǐng)求的正文。 大多數(shù)示例演示如何使用 JSON 有效負(fù)載準(zhǔn)備?StringContent?子類,但還有針對(duì)其他內(nèi)容 (MIME) 類型的其他子類。

  • ByteArrayContent:提供基于字節(jié)數(shù)組的 HTTP 內(nèi)容。
  • FormUrlEncodedContent:為使用?"application/x-www-form-urlencoded"?MIME 類型編碼的名稱/值元組提供 HTTP 內(nèi)容。
  • JsonContent:提供基于 JSON 的 HTTP 內(nèi)容。
  • MultipartContent:提供使用?"multipart/*"?MIME 類型規(guī)范進(jìn)行序列化的 HttpContent 對(duì)象的集合。
  • MultipartFormDataContent:為使用?"multipart/form-data"?MIME 類型進(jìn)行編碼的內(nèi)容提供容器。
  • ReadOnlyMemoryContent:提供基于?ReadOnlyMemory<T>?的 HTTP 內(nèi)容。
  • StreamContent:提供基于流的 HTTP 內(nèi)容。
  • StringContent:提供基于字符串的 HTTP 內(nèi)容。

HttpContent?類還用于表示?HttpResponseMessage?的響應(yīng)正文,可通過?文章來源地址http://www.zghlxwxcb.cn/news/detail-761401.html

到了這里,關(guān)于【微軟技術(shù)棧】C#.NET 使用 HttpClient 類發(fā)出 HTTP 請(qǐng)求的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 在 Node.js 中發(fā)出 HTTP 請(qǐng)求的 5 種方法

    學(xué)習(xí)如何在 Node.js 中發(fā)出 HTTP 請(qǐng)求可能會(huì)讓人感到不知所措,因?yàn)橛袛?shù)十個(gè)可用的庫,每個(gè)解決方案都聲稱比上一個(gè)更高效。一些庫提供跨平臺(tái)支持,而另一些庫則關(guān)注捆綁包大小或開發(fā)人員體驗(yàn)。 在這篇文章中,我們將探討在 Node.js 中發(fā)出 HTTP 請(qǐng)求的五種最流行的方法,并

    2024年02月04日
    瀏覽(23)
  • 【Angular中的HTTP請(qǐng)求】- HttpClient 詳解

    【Angular中的HTTP請(qǐng)求】- HttpClient 詳解

    ????????大多數(shù)前端應(yīng)用都要通過 HTTP 協(xié)議與服務(wù)器通訊,才能下載或上傳數(shù)據(jù)并訪問其它后端服務(wù)。Angular 給應(yīng)用提供了一個(gè) HTTP 客戶端 API,也就是 @angular/common/http 中的 HttpClient 服務(wù)類。 ????????要想使用 HttpClient ,就要先導(dǎo)入 Angular 的 HttpClientModule 。一般都是在根

    2024年02月08日
    瀏覽(20)
  • C#中通過HttpClient發(fā)送Post請(qǐng)求

    C#中通過HttpClient發(fā)送Post請(qǐng)求

    C#中HttpClient進(jìn)行各種類型的傳輸 我們可以看到, 盡管PostAsync有四個(gè)重載函數(shù), 但是接受的都是HttpContent, 而查看源碼可以看到, HttpContent是一個(gè)抽象類 那我們就不可能直接創(chuàng)建HttpContent的實(shí)例, 而需要去找他的實(shí)現(xiàn)類, 經(jīng)過一番研究, 發(fā)現(xiàn)了, 如下四個(gè): MultipartFormDataContent、FormUrl

    2024年02月02日
    瀏覽(22)
  • HttpClient:HTTP GET請(qǐng)求的服務(wù)器響應(yīng)輸出

    HttpClient:HTTP GET請(qǐng)求的服務(wù)器響應(yīng)輸出

    前言 在現(xiàn)代軟件開發(fā)中,與網(wǎng)絡(luò)通信相關(guān)的技術(shù)變得愈發(fā)重要。Java作為一種強(qiáng)大而靈活的編程語言,提供了豐富的工具和庫,用于處理各種網(wǎng)絡(luò)通信場(chǎng)景。本文將聚焦在Java中使用HttpClient庫發(fā)送HTTP GET請(qǐng)求,并將服務(wù)器的響應(yīng)數(shù)據(jù)進(jìn)行輸出,同時(shí)加入代理服務(wù)器的配置,以應(yīng)

    2024年02月20日
    瀏覽(25)
  • HTTP POST接口帶參數(shù)的HttpClient請(qǐng)求方法和調(diào)用

    HTTP POST接口帶參數(shù)的HttpClient請(qǐng)求方法和調(diào)用

    接口自動(dòng)化測(cè)試,今天遇到POST接口帶參數(shù),參數(shù)在url上,發(fā)現(xiàn)原來的工具類中沒有該方法,重新調(diào)試加上。 ?doPost方法如下: 參考: [Java 接口自動(dòng)化框架]httpclient4.5.3(CloseableHttpClient) https的工具類HttpsClientUtils

    2024年02月06日
    瀏覽(19)
  • 提示“無法向會(huì)話狀態(tài)服務(wù)器發(fā)出會(huì)話狀態(tài)請(qǐng)求。請(qǐng)確保 ASP.NET State Service (ASP.NET 狀態(tài)服務(wù))已啟動(dòng)”,如何解決?

    提示“無法向會(huì)話狀態(tài)服務(wù)器發(fā)出會(huì)話狀態(tài)請(qǐng)求。請(qǐng)確保 ASP.NET State Service (ASP.NET 狀態(tài)服務(wù))已啟動(dòng)”,如何解決?

    ? ? 在aspx網(wǎng)站部署過程中,出現(xiàn)“無法向會(huì)話狀態(tài)服務(wù)器發(fā)出會(huì)話狀態(tài)請(qǐng)求。請(qǐng)確保 ASP.NET State Service (ASP.NET 狀態(tài)服務(wù))已啟動(dòng)”的提示,如下圖,如何解決? 解決方案1: Web.Config里面 把sessionState 的mode改為\\\"InProc\\\"?; ?mode 設(shè)置將決定Session信息存儲(chǔ)位置,可設(shè)置為下面幾種類型

    2024年02月15日
    瀏覽(26)
  • 【微軟技術(shù)?!緾#.NET 中使用依賴注入

    先決條件 創(chuàng)建新的控制臺(tái)應(yīng)用程序 添加接口 添加默認(rèn)實(shí)現(xiàn) 添加需要 DI 的服務(wù) 為 DI 注冊(cè)服務(wù) 結(jié)束語 本文介紹如何在 .NET 中使用依賴注入 (DI)。 借助 Microsoft 擴(kuò)展,可通過添加服務(wù)并在?IServiceCollection?中配置這些服務(wù)來管理 DI。?IHost?接口會(huì)公開?IServiceProvider?實(shí)例,它充

    2024年02月04日
    瀏覽(23)
  • 使用C#編寫HTTP POST請(qǐng)求方法

    使用C#編寫HTTP POST請(qǐng)求方法 在C#中,我們可以使用HttpClient類來發(fā)送HTTP請(qǐng)求。下面是一個(gè)示例代碼,演示如何使用C#發(fā)送HTTP POST請(qǐng)求:

    2024年02月05日
    瀏覽(18)
  • Spring Boot進(jìn)階(72):【教程】用Spring Boot和HttpClient實(shí)現(xiàn)高效的HTTP請(qǐng)求

    Spring Boot進(jìn)階(72):【教程】用Spring Boot和HttpClient實(shí)現(xiàn)高效的HTTP請(qǐng)求

    ??隨著系統(tǒng)規(guī)模的不斷擴(kuò)大和復(fù)雜度的提升,異步通信這種模式越來越被廣泛應(yīng)用于各種分布式系統(tǒng)中。RocketMQ作為一個(gè)高性能、高可靠性、分布式消息隊(duì)列,得到了眾多企業(yè)的青睞。本文將介紹如何使用Spring Boot整合RocketMQ,實(shí)現(xiàn)異步通信。 ??那么,具體如何實(shí)現(xiàn)呢?這

    2024年02月09日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包