.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 }