.NET 的http请求组件RestSharp

简介

RestSharp是一个轻量的,不依赖任何第三方的组件或者类库的Http的组件。有如下优点

1、通过NuGet方便引入到任何项目

2、可以自动反序列化XML和JSON

3、支持自定义的序列化与反序列化

4、自动检测返回的内容类型

5、支持HTTP的GET, POST, PUT, HEAD, OPTIONS, DELETE等操作

6、可以上传多文件

7、支持oAuth 1, oAuth 2, Basic, NTLM and Parameter-based Authenticators等授权验证等

8、支持异步操作

9、极易上手并应用到任何项目中

  

使用案例:

主要介绍了三种,get,post,上传文件请求,仅供参考

 1 C# 使用RestClient 调用接口
 2 get
 3       public static string Client_Get(string requestUri, Dictionary<string, string> token = null)
 4         {
 5            
 6             var client = new RestClient(requestUri);
 7             var request = new RestRequest(Method.GET);
 8             //添加请求头
 9             if (!token.IsEmpty())
10             {
11                 foreach (var item in token)
12                 {
13                     request.AddHeader(item.Key, item.Value);
14                 }
15             }
16             IRestResponse response = client.Execute(request);
17             var content = response.Content;
18             return content;
19         }
20 
21 //post
22         /// <summary>
23         /// 保存数据
24         /// </summary>
25         /// <returns></returns>
26         public async Task<string> Save(Model model, string token)
27         {
28             var url = $"http://127.0.0.1/terminal-tenant/app/visitor/save";
29             var client = new RestClient(url);
30             var request = new RestRequest(Method.POST);
31             request.RequestFormat = DataFormat.Json;
32             request.AddHeader("token", token);
33             request.AddParameter("application/json; charset=utf-8", JsonConvert.SerializeObject(model), ParameterType.RequestBody);
34             IRestResponse response = client.Execute(request);
35             var responseContent = response.Content;
36             return responseContent;
37         }
38 
39 //上传文件
40         /// <summary>
41         /// 上传文件
42         /// </summary>
43         /// <param name="bt"></param>
44         /// <param name="token"></param>
45         /// <returns></returns>
46         public async Task<string> Upload(byte[] bt, string token)
47         {
48             var url = $"http://127.0.0.1/terminal-tenant/tenant/common/upload";
49             var client = new RestClient(url);
50             var request = new RestRequest(Method.POST);
51             request.RequestFormat = DataFormat.Json;
52             request.AddHeader("token", token);
53             request.AddFile("file", bt, "multipart/form-data");
54             IRestResponse response = client.Execute(request);
55             var responseContent = response.Content;
56             return responseContent;
57         }

 

posted @ 2021-09-29 10:27  stweily  阅读(575)  评论(0编辑  收藏  举报