<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何使用 RestSharp 調(diào)用 WebAPI 接口

          共 3794字,需瀏覽 8分鐘

           ·

          2020-12-13 09:31


          REST 是由?Representational State Transfer?這三個單詞前綴合成,這種架構(gòu)風(fēng)格在前幾年特別流行,Restful API 的行為規(guī)范可以參考: https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design ?,通常 RESTful API 返回的格式為常見的 PlianText, JSON , XML 格式。

          RestSharp 是一個開源的 Http 客戶端類庫,非常方便和 RESTful 格式的 Service 進(jìn)行交互,??的是,這個類庫封裝了 request 請求過程中復(fù)雜的細(xì)節(jié),而且 RestSharp 支持同步和異步兩種請求模式。

          這篇文章將會討論如何使用 RestSharp 去請求 Asp.NET Core 服務(wù)。

          實(shí)現(xiàn) DefaultController

          打開 DefaultController.cs 文件并用下面的代碼進(jìn)行替換。


          using?Microsoft.AspNetCore.Mvc;
          using?System.Collections.Generic;

          namespace?RESTAPIDemo.Controllers
          {
          ???[Route("api/[controller]")]
          ???[ApiController]
          ???public?class?DefaultController?:?ControllerBase
          ???{
          ???????private?readonly?Dictionary<int,?string>?authors?=?new?Dictionary<int,?string>();
          ???????public?DefaultController()
          ???????{
          ???????????authors.Add(1,?"Joydip?Kanjilal");
          ???????????authors.Add(2,?"Steve?Smith");
          ???????????authors.Add(3,?"Michele?Smith");
          ???????}
          ???????
          ???????[HttpGet]
          ???????public?List<string>?Get()
          ???????{
          ???????????List<string>?lstAuthors?=?new?List<string>();
          ???????????foreach?(KeyValuePair<int,string>?keyValuePair?in?authors)
          ???????????????lstAuthors.Add(keyValuePair.Value);
          ???????????return?lstAuthors;
          ???????}
          ???????
          ???????[HttpGet("{id}",?Name?=?"Get")]
          ???????public?string?Get(int?id)
          ???????{
          ???????????return?authors[id];
          ???????}
          ???????
          ???????[HttpPost]
          ???????public?void?Post([FromBody]?string?value)
          ???????{
          ???????????authors.Add(4,?value);
          ???????}
          ???????
          ???????[HttpPut("{id}")]
          ???????public?void?Put(int?id,?[FromBody]?string?value)
          ???????{
          ???????????authors[id]?=?value;
          ???????}

          ???????[HttpDelete("{id}")]
          ???????public?void?Delete(int?id)
          ???????{
          ???????????authors.Remove(id);
          ???????}
          ???}
          }

          參考上面的 DefaultController 類,可以發(fā)現(xiàn) Action 方法的名字對應(yīng)著 Http 動詞的 GET,POST,PUT 和 DELETE,為了簡單起見,我使用了 Dictionary 來存取數(shù)據(jù),你可以用 瀏覽器 或者 Postman 或者 Fiddler 進(jìn)行測試,請注意,這里為了方便,我在 Post 方法中使用了硬編碼,實(shí)際場景中你可以用自己的方式生成唯一ID。

          接下來的章節(jié)我們將會學(xué)習(xí)如何使用 RestSharp 去調(diào)用剛才構(gòu)建的 API 接口。

          安裝 RestSharp

          要想使用 RestSharp,你可以使用 Visual Studio 2019 中的?NuGet package manager?可視化界面進(jìn)行安裝,或者通過?NuGet package manager console?命令行輸入如下命令:


          Install-Package?RestSharp

          使用 RestSharp 調(diào)用 ASP.NET Core API

          一旦 RestSharp 成功引用到項(xiàng)目之后,就可以使用它了,首先, 你需要創(chuàng)建 RestClient 實(shí)例,下面的代碼展示了如何對 RestClient 進(jìn)行實(shí)例化和初始化操作,要注意的是構(gòu)造函數(shù)中的 url 配置的是 基址,言外之意這不是完整的url。


          RestClient?client?=?new?RestClient("http://localhost:58179/api/");

          接下來,你可以傳遞?資源名?和?請求方式?兩個參數(shù)來實(shí)例化 RestRequest 對象,下面的代碼展示了如何實(shí)現(xiàn)。


          RestRequest?request?=?new?RestRequest("Default",?Method.GET);

          最后,你可以執(zhí)行 request 請求,再將返回的結(jié)果序列化, 最后用一個合適的對象接收,就像下面代碼一樣。


          IRestResponsestring>>?response?=?client.Executestring>>(request);

          下面是完整的可供參考的代碼清單。


          using?RestSharp;
          using?System;
          using?System.Collections.Generic;
          namespace?RESTSharpClientDemo
          {
          ????class?Program
          ????{
          ????????private?static?RestClient?client?=?new?RestClient("http://localhost:58179/api/");
          ????????
          ????????static?void?Main(string[]?args)
          ????????{
          ????????????RestRequest?request?=?new?RestRequest("Default",Method.GET);
          ????????????IRestResponsestring>>?response?=?client.Executestring>>(request);
          ????????????Console.ReadKey();
          ????????}
          ????}
          }

          如果想使用 RestSharp 發(fā)送 POST 請求,可以使用如下代碼。


          RestRequest?request?=?new?RestRequest("Default",?Method.POST);
          request.AddJsonBody("Robert?Michael");
          var?response?=?client.Execute(request);

          RestSharp 可以跨多個 .NET 平臺使用,比如說:Momo,Xarmain,Blazer 等等,這也是它為什么非常流行的原因,而且 RestSharp 支持通過泛型方式獲取結(jié)果,這個特性特別 ??,想了解更多 RestSharp 知識,可參考 Github:https://github.com/restsharp/RestSharp

          譯文鏈接:https://www.infoworld.com/article/3489481/how-to-consume-an-aspnet-core-web-api-using-restsharp.html


          往期精彩回顧




          【推薦】.NET Core開發(fā)實(shí)戰(zhàn)視頻課程?★★★

          .NET Core實(shí)戰(zhàn)項(xiàng)目之CMS 第一章 入門篇-開篇及總體規(guī)劃

          【.NET Core微服務(wù)實(shí)戰(zhàn)-統(tǒng)一身份認(rèn)證】開篇及目錄索引

          Redis基本使用及百億數(shù)據(jù)量中的使用技巧分享(附視頻地址及觀看指南)

          .NET Core中的一個接口多種實(shí)現(xiàn)的依賴注入與動態(tài)選擇看這篇就夠了

          10個小技巧助您寫出高性能的ASP.NET Core代碼

          用abp vNext快速開發(fā)Quartz.NET定時(shí)任務(wù)管理界面

          在ASP.NET Core中創(chuàng)建基于Quartz.NET托管服務(wù)輕松實(shí)現(xiàn)作業(yè)調(diào)度

          現(xiàn)身說法:實(shí)際業(yè)務(wù)出發(fā)分析百億數(shù)據(jù)量下的多表查詢優(yōu)化

          關(guān)于C#異步編程你應(yīng)該了解的幾點(diǎn)建議

          C#異步編程看這篇就夠了


          瀏覽 131
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费的黄色片免费的黄色片 | 三级视频无码 | 久久香蕉精品视频 | 日本韩国一区二区三区在线观看 | 青娱乐欧美视频 |