最近做了一個項目需要調用外部的API,發現一個很好用的組件,分享一下。
以下RestSharp的描述來自網上摘抄。https://www.xcode.me/post/5748
描述:RestSharp 是一個基於 .NET 框架的 REST 客戶端,RestSharp 是一個輕量的,不依賴任何第三方的組件或者類庫的 HTTP 組件。RestSharp具有以下的優點:
1、支持.NET4.5.2+ 和 .NET Standard 2.0 平台
2、使用NuGet輕松安裝開發包
3、自動 XML 和 JSON 反序列化
4、通過 ISerializer 和 IDeserializer 自定義序列化和反序列化為
5、模糊匹配元素名稱 (例如:XML或JSON中的product_id將匹配名為ProductId的C#屬性)
6、自動檢測返回內容的類型
7、指出 GET, POST, PUT, PATCH, HEAD, OPTIONS, DELETE 和 COPY 請求,支持其它非標准 HTTP 方法
8、OAuth 1.0、OAuth 2.0、Basic、NTLM 和基於參數的身份認證
9、通過 IAuthenticator 接口自定義身份驗證方案
10、支持異步操作
github地址:https://github.com/restsharp/RestSharp
一、簡單的Api調用
SignModel signModel = new SignModel(); signModel.FileBase64 = fileBase64; signModel.Index = 1; var restclient = new RestClient("http://192.168.0.163:81"); var request = new RestRequest($"/api/Sign", Method.POST); request.AddObject(signModel); var response = restclient.Execute(request); var resout = JsonConvert.DeserializeObject<Resout>(response.Content);
二、獲取文件
#region 從wps獲取文件的fileBytes if (string.IsNullOrEmpty(fileUrl)) { return new { code = ResultType.Error, message = "文件地址不能為空!", }; } var client = new RestClient("http://ks3-cn-beijing.ksyun.com"); var request = new RestRequest(fileUrl.Substring(33), Method.GET); var response = client.Get(request); var fileBytes = response.RawBytes; #endregion
RestSharp是一個很強大的HTTP組件,我用到的功能比較簡單,更多的功能可以去官網查看,官網的實例都很清楚。