日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C# 发出异步的Get请求

發(fā)布時(shí)間:2023/12/4 C# 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 发出异步的Get请求 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

下列的下載代碼示例是 HttpClientSample。它以不同的方式異步調(diào)用Web 服務(wù)。為了演示本例使用的不同方法,使用了命令行參數(shù)。

示例代碼使用了以下名稱空間:

System System.Linq System.Net System.Net.Http System.Net.Http.Headers System.Threading System.Threading.Tasks

第一段代碼實(shí)例化一個(gè) HttpClient 對(duì)象,把它賦予私有字段 _httpClient,以進(jìn)行重用。這個(gè) HttpClient 對(duì)象是線程安全的,所以一個(gè) HttpClient 對(duì)象就可以用于處理多個(gè)請(qǐng)求。HttpClient 的每個(gè)實(shí)例都維護(hù)它自己的線程池,所以 HttpClient 實(shí)例之間的請(qǐng)求會(huì)被隔離。

接著調(diào)用 GetAsync,給它傳遞要調(diào)用的方法的地址,把一個(gè) HTTP GET 請(qǐng)求發(fā)送給服務(wù)器。GetAsync 調(diào)用被重載為帶一個(gè)字符串或 URI 對(duì)象。

對(duì)GetAsync 的調(diào)用返回一個(gè)HttpResponseMessage 對(duì)象。HttpResponseMessage 類表示包含標(biāo)題、狀態(tài)和內(nèi)容的響應(yīng)。檢查響應(yīng)的IsSuccessfulStatusCode屬性,可以確定請(qǐng)求是否成功。如果調(diào)用成功,就使用 ReadAsStringAsync 方法把返回的內(nèi)容檢索為一個(gè)字符串:

private const string NorthwindUrl ="http://services.data.org/Northwind/Northwind.svc/Regions"; private?const?string?IncorrectUrl?="http://services.data.org/Northwind1/Northwind.svc/Regions";private HttpClient _httpClient; public?HttpClient?HttpClient?=>_httpClient????(_httpClient?=?new?HttpClient());private async Task GetDataSimpleAsync() {HttpResponseMessage response = await HttpClient.GetAsync(NorthwindUrl); if(response.IsSuccessStatusCode){Console.WriteLine($"Response Status Code: {(int)response.StatusCode} " +$"{response.ReasonPhrase}") ;string responseBodyAsText =await response.Content.ReadAsStringAsyne();Console.WriteLine($"Received payload of {responseBodyAsText.Length} characters");Console.WriteLine();Console.WriteLine(responseBodyAsText);}} }

用命令行參數(shù) -s 執(zhí)行這段代碼,產(chǎn)生以下輸出:?

Response Status Code: 200 OK Received payload of 3379 characters <?xml version="1.0" encoding="utf-8"?> <!- ... ->

注意:

因?yàn)?HttpClient 類使用 GetAsync 方法調(diào)用,且使用了 await 關(guān)鍵字,所以返回調(diào)用線程,并可以執(zhí)行其他工作。GetAsync 方法的結(jié)果可用時(shí),就用該方法繼續(xù)線程,響應(yīng)寫(xiě)入 response 變量。

?微信公眾號(hào)?

Dotnet講堂

總結(jié)

以上是生活随笔為你收集整理的C# 发出异步的Get请求的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。