日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
聊聊RestSharp.net REST/HTTP 工具庫

本文轉(zhuǎn)載自微信公眾號「UP技術控」,作者conan5566 。轉(zhuǎn)載本文請聯(lián)系UP技術控公眾號。 

富蘊網(wǎng)站建設公司創(chuàng)新互聯(lián)公司,富蘊網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為富蘊上千多家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設公司要多少錢,請找那個售后服務好的富蘊做網(wǎng)站的公司定做!

說明

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

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

入門

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

 
 
 
  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包含從遠程服務器返回的所有信息。您可以訪問標題,內(nèi)容,HTTP狀態(tài)等。

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

異步呼叫

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

因此,您可以使用和來代替Get 返回T或Execute 返回。參數(shù)集通常是相同的。您可以選擇提供取消令牌,該令牌默認設置為。IRestResponse GetAsync ExecuteAsync CancellationToken.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(request, cancellationToken); 

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

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

內(nèi)容類型

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

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

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

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

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

響應

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

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

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


本文名稱:聊聊RestSharp.net REST/HTTP 工具庫
路徑分享:http://www.dlmjj.cn/article/djedehj.html