翼度科技»论坛 编程开发 .net 查看内容

RestSharp —(个人胡说八道🤣)

10

主题

10

帖子

30

积分

新手上路

Rank: 1

积分
30
RestSharp

RestSharp是一个轻量的,不依赖任何第三方的模拟Http的组件或者类库。RestSharp具体以下特性;支持net4.0++,支持HTTP的GET, POST, PUT, HEAD, OPTIONS, DELETE等操作,支持oAuth 1, oAuth 2, Basic, NTLM and Parameter-based Authenticators等授权验证等。截止当前目前是github最高stars的http类库。

GitHub仓库
restsharp/RestSharp: Simple REST and HTTP API Client for .NET (github.com)
官方文档
RestSharp Next (v107) | RestSharp
使用介绍

NuGet包


请求类型


  • Method.Get
  • Method.Post
  • Method.Put
  • Method.Delete
  • Method.Patch
  • Method.Head
  • Method.Options
  • Method.Merge
  • Method.Copy
  • Method.Search
Http标头

AddObject
  1. var obj = new {
  2.     status = 1,
  3.     priority = "high",
  4.     ids = new [] { "123", "456" }
  5. };
  6. request.AddObject(obj);
  7. //或者 AddParameter(key, value);
  8. request.AddParameter("status", 1);
  9. request.AddParameter("priority", "high");
  10. request.AddParameter("ids", "123,456");
复制代码
AddUrlSegment
  1. var request = new RestRequest("health/{entity}/status").AddUrlSegment("entity", "s2");
  2. //请求地址会转换为 health/s2/status
复制代码
AddStringBody

如果您有预序列化的有效负载(如 JSON 字符串),则可以使用它将其添加为正文参数。需要指定内容类型,以便远程终结点知道如何处理请求正文
  1. var json = "{ data: { foo: "bar" } }";
  2. request.AddStringBody(json, ContentType.Json);
复制代码
JsonBody


  • 指示 RestClient 在发出请求时将对象参数序列化为 JSON
  • 将内容类型设置为application/json
  • 将请求正文的内部数据类型设置为DataType.Json
不要将 JSON 字符串或某种实例发送到
  1. var param = new MyClass { IntData = 1, StringData = "test123" };
  2. request.AddJsonBody(param);
复制代码
简单例子
  1.         private async Task<RestResponse> RestSharpTest(string requestUrl,Method apiMethod)
  2.         {
  3.             var client = new RestClient(requestUrl);
  4.             client.AcceptedContentTypes = new[] { "application/json", "text/json", "text/x-json", "text/javascript", "text/plain", "*/*" };
  5.             var request = new RestRequest();
  6.             switch (apiMethod)
  7.             {
  8.                 case RequestTypeEnum.Get:
  9.                     request = new RestRequest("", Method.Get);
  10.                     break;
  11.                 case RequestTypeEnum.Post:
  12.                     request = new RestRequest("", Method.Post);
  13.                     break;
  14.                 case RequestTypeEnum.Put:
  15.                     request = new RestRequest("", Method.Put);
  16.                     break;
  17.                 case RequestTypeEnum.Patch:
  18.                     request = new RestRequest("", Method.Patch);
  19.                     break;
  20.                 case RequestTypeEnum.Delete:
  21.                     request = new RestRequest("", Method.Delete);
  22.                     break;
  23.                 default:
  24.                     break;
  25.             }
  26.             request.AddHeader("Content-Type", "application/json");
  27.             var response = await client.ExecuteAsync(request);
  28.             return response;
  29.         }
复制代码
来源:https://www.cnblogs.com/rsg-zxh/archive/2023/02/23/17148695.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具