成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊RestSharp.net REST/HTTP 工具庫

開發 開發工具
顧名思義,RestSharp的主要受眾是使用REST API的開發人員。但是,只要您擁有要發送的資源URI和請求參數符合W3C HTTP標準,RestSharp可以通過HTTP調用任何API(但不能調用HTTP / 2)。

[[378590]]

本文轉載自微信公眾號「UP技術控」,作者conan5566 。轉載本文請聯系UP技術控公眾號。    

說明

RestSharp的主要目的是通過HTTP對遠程資源進行同步和異步調用。顧名思義,RestSharp的主要受眾是使用REST API的開發人員。但是,只要您擁有要發送的資源URI和請求參數符合W3C HTTP標準,RestSharp可以通過HTTP調用任何API(但不能調用HTTP / 2)。

為.NET開發人員使用HTTP API的主要挑戰之一是處理不同種類的請求和響應,并將它們轉換為復雜的C#類型。RestSharp可以負責將請求正文序列化為JSON或XML并反序列化響應。它還可以根據不同的參數類型(路徑,查詢,表單或正文)形成有效的請求URI。

入門

您必須先添加NuGet軟件包,然后才能在應用程序中使用RestSharp。您可以使用IDE或命令行執行此操作:

  1. dotnet add package RestSharp 

基本用法

如果您只對API提出了一些一次性請求,則可以這樣使用RestSharp:

  1. using RestSharp; 
  2. using RestSharp.Authenticators; 
  3.  
  4. var client = new RestClient("https://api.twitter.com/1.1"); 
  5. client.Authenticator = new HttpBasicAuthenticator("username""password"); 
  6.  
  7. var request = new RestRequest("statuses/home_timeline.json", DataFormat.Json); 
  8.  
  9. var response = client.Get(request); 

IRestResponse包含從遠程服務器返回的所有信息。您可以訪問標題,內容,HTTP狀態等。

我們建議使用通用重載,例如Get將響應自動反序列化為.NET類。

異步呼叫

所有同步方法都有其異步同級,后綴為Async。

因此,您可以使用和來代替Get返回T或Execute返回。參數集通常是相同的。您可以選擇提供取消令牌,該令牌默認設置為。IRestResponseGetAsyncExecuteAsyncCancellationToken.None

例如:

  1. using RestSharp; 
  2. using RestSharp.Authenticators; 
  3.  
  4. var client = new RestClient("https://api.twitter.com/1.1"); 
  5. client.Authenticator = new HttpBasicAuthenticator("username""password"); 
  6.  
  7. var request = new RestRequest("statuses/home_timeline.json", DataFormat.Json); 
  8.  
  9. var timeline = await client.GetAsync<HomeTimeline>(request, cancellationToken); 

不過,最重要的區別是,以HTTP方法命名的異步方法返回Task而不是Task

ExecuteAsync但是,所有重載的行為都與相同,Execute并返回IRestResponse或IRestResponse。

內容類型

RestSharp支持將XML或JSON正文作為請求的一部分發送。要將主體添加到請求中,只需調用實例的AddJsonBody或AddXmlBody方法IRestRequest。

使用這些方法時,無需設置Content-Type或DataFormat在請求中添加參數,RestSharp會為您完成此操作。

RestSharp還將處理XML和JSON響應,并根據服務器響應類型執行所有必要的反序列化任務。因此,僅在Accept要手動反序列化響應時才需要添加標頭。

例如,只需要這些行即可使用JSON正文進行請求:

  1. var request = new RestRequest("address/update"
  2.     .AddJsonBody(updatedAddress); 
  3. var response = await client.PostAsync<AddressUpdateResponse>(request); 

響應

當使用Execute或時ExecuteAsync,您將獲得IRestResponse具有Content屬性的back實例,該實例以字符串形式包含響應。您可以在那里找到其他有用的屬性,例如StatusCode,ContentType等等。如果請求未成功,您將獲得響應,并將IsSuccessful屬性設置為,false并且在ErrorException和ErrorMessage屬性中說明了錯誤。

使用typeExecute或時ExecuteAsync,您將獲得IRestResponseback的實例,該實例與back實例相同,IRestResponse但也包含T Data具有反序列化響應的屬性。

擴展喜歡Get并且GetAsync不會返回全部,IRestResponse而只是反序列化的響應。null如果出現問題,您可能會回來,并且很難理解該問題。因此,在使用類型化擴展方法時,建議將IRestClient.ThrowOnAnyError屬性設置為true。這樣,您告訴RestSharp在出現問題時引發異常。然后,您可以將調用包裝在try/catch塊中,并相應地處理異常。

 

責任編輯:武曉燕 來源: UP技術控
相關推薦

2024-02-29 18:06:39

HTTP性能優化

2023-03-27 08:49:51

2021-02-07 09:05:56

微服務結構云原生

2021-07-11 12:12:49

.NETJWTjson

2021-10-04 19:49:23

HTTP模塊No.js

2022-05-09 08:34:01

FeignhttpJava

2024-10-15 09:34:57

2024-06-17 10:38:47

RefitHTTP 請求C#

2025-01-03 06:55:09

.NET HTTP開發開源

2021-07-14 06:45:49

Windows.NetTopshelf

2021-06-08 09:28:12

.Net通知服務

2016-11-28 09:00:10

瀏覽器瀏覽器緩存服務端

2021-03-05 11:35:39

Linux 命令工具

2024-05-06 00:00:00

.NET分布式鎖技術

2024-02-29 07:28:44

Cron表達式解析庫

2022-08-02 20:21:42

開源項目工具

2022-11-30 21:32:23

開源buildah工具

2022-04-27 09:28:11

HTTPExpires

2021-03-02 06:00:05

Docker.NET 5 Dockerfile

2021-02-19 06:54:33

配置系統ASP.NET Cor
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久久91 | 国产精品成人品 | 国产www成人 | 国产一区二区精品在线观看 | 亚洲欧美一区二区三区1000 | 成人免费视频一区 | 国产一区91精品张津瑜 | 亚洲视频在线观看免费 | 一区二区三区视频在线观看 | 日韩视频一区二区三区 | 国产欧美日韩一区 | 国产999精品久久久 午夜天堂精品久久久久 | 极品粉嫩国产48尤物在线播放 | 黄色大片视频 | 天天综合国产 | 精品一区二区三区在线观看 | 中文字幕日韩欧美一区二区三区 | 国产不卡在线观看 | 成人精品 | 在线看av网址 | 久久久观看 | 成人免费在线观看视频 | 99久久精品国产毛片 | 国产精品视频网 | 91久久 | 成人精品鲁一区一区二区 | 国产精品久久久久免费 | 欧美成人一区二区三区 | 日韩一区二区三区视频 | 99久久精品国产一区二区三区 | 黄色三级在线播放 | 久久精品国产一区老色匹 | 欧美一级视频 | 国产日韩免费视频 | 亚洲品质自拍视频网站 | 欧美做暖暖视频 | 99久久中文字幕三级久久日本 | 粉嫩av在线 | 久久亚洲一区二区三区四区 | 精品欧美乱码久久久久久 | 亚洲精品久久 |