当前位置: 首页 > article >正文

RestSharp基本使用方法

  • 关于RestSharp

RestSharp is a library that allows you to make REST and HTTP calls in .NET applications. It supports serialization, parameters, async functions, and more.

RestSharpC#的一个WepApi库,支持通用的Web接口处理,支持序列化、参数化、异步回调等。

  • 入门示例,带授权的GET请求
// 设置授权信息Authenticator,客户端级别,适用于多个请求共用
// 指定主页(基)地址
var opt = new RestClientOptions(HomeUrl)
{
    Authenticator = new HttpBasicAuthenticator("用户名", "密码")
};
var client = new RestClient(opt);

// 创建请求,指定相对地址
var req = new RestRequest("ui/api/f1?recordNum=0");
// 也可以在请求上单独设置授权信息,单个请求的级别
// req.Authenticator = Authenticator;

// 在client上执行异步的GET请求
var ans = await client.GetAsync(req);
ShowRest(req, ans);

// 显示应答方法
void ShowRest(RestRequest req, RestResponse ans)
{
    if(ans.IsSuccessful)
    {
        Log("请求成功:\r\n链接:" + ans.ResponseUri.AbsoluteUri + "\r\n结果:" + ans.Content);
    }
    else
    {
        Log("请求失败:\r\n链接:" + (ans.ResponseUri?.AbsoluteUri ?? req.Resource) + "\r\n原因:" + ans.Content);
    }
}
  • 一般流程,示例GET
// 1.创建client,指定基地址
var client = new RestClient('htpp://192.168.1.1:8089');
// 支持添加client级别的参数,如下:
// AddDefaultHeader
// AddDefaultHeaders
// AddDefaultParameter
// AddDefaultParameter
// AddDefaultParameter
// AddDefaultQueryParameter
// AddDefaultUrlSegment

// 2.创建请求,指定相对地址
var req = new RestRequest("/api/v1/ui/auth/f2");
// 设置参数
foreach(var p in Parameters)
{
    req.AddParameter(p.Key, p.Value);
}
// 参数还可以通过其他方式添加,如:
// req.AddBody("", ContentType.Json);
// req.AddObject(para)
// req.AddJsonBody(json_para);

// 3.添加授权信息(该步骤可选,看接口是否需要授权)
req.Authenticator = Authenticator;

// 其他参数设置,如:
// 添加Cookies AddCookie
// 添加Header  AddHeader
// 添加上传文件 AddFile

// 4.执行请求
// 请求方式支持:Get Post Put Delete Head Options Patch Merge Copy Search
var ans = client.Execute(req, Method.Get);
ShowRest(req, ans);
  • POST + JSON 示例
// 1.创建client,指定基地址
var client = new RestClient(HomeUrl);

// 2.创建请求,指定相对地址
var req = new RestRequest("api/v1/f3");
// 设置参数
// {"path":"2024/202411121649.zip","name":"my_baby","type":"file"}
req.AddJsonBody(Para);

// 3.添加授权信息(该步骤可选,看接口是否需要授权)
req.Authenticator = Authenticator;

// 添加其他信息,指定使用JSON内容
req.AddHeader("X-Requested-With", "XMLHttpRequest");
req.AddHeader("Content-Type", "application/json");

// 4.执行请求
var ans = client.Execute(req, Method.Post);
ShowRest(req, ans);
  • PUT 上传文件
// 1.创建client,指定基地址
var client = new RestClient(HomeUrl);

// 2.创建请求,指定相对地址
var filePath = Parameters["FilePath"];
var repoPath = Parameters["RepoPath"];
var req = new RestRequest("/artifactory/" + ReposName + "/" + repoPath);

// 设置上传的目标文件
req.AddFile(Path.GetFileName(filePath), filePath);

// 3.添加授权信息(该步骤可选,看接口是否需要授权)
req.Authenticator = Authenticator;

// 4.执行请求
var ans = client.Execute(req, Method.Put);
ShowRest(req, ans);

http://www.kler.cn/a/397900.html

相关文章:

  • 外网访问 WebDav 服务
  • GitLab 如何降级?
  • WebChromeClient 方法分类及其功能
  • 周末总结(2024/11/16)
  • 千益畅行,共享旅游卡市场乱象解析与未来展望
  • java版嘎嘎快充汽车单车充电系统源码系统jeecgboot
  • 2024-11-16-机器学习方法:无监督学习(1) 聚类(上)
  • 快速上手:Docker 安装详细教程(适用于 Windows、macOS、Linux)
  • 【循环测试试题3】小X与数字三角形
  • 普通电脑上安装属于自己的Llama 3 大模型和对话客户端
  • ‘v-scale-screen‘使用(Vue框架的大屏幕自适应组件)
  • # SpringSecutrity学习
  • 遥测数据采集工具Grafana Alloy
  • Redis系列之底层数据结构ZipList
  • 蓝桥杯每日真题 - 第15天
  • 24下软考高级【系统架构设计师】考试难度分析
  • Python学习27天
  • OpenGL ES 文字渲染进阶--渲染中文字体
  • NOIP2007T1 统计数字
  • Android 配置默认输入法
  • Scala中的迭代器
  • 如何找出爬取网站的来源IP呢?
  • 对接阿里云实人认证
  • UG Motion学习笔记
  • 【AI图像生成网站Golang】JWT认证与令牌桶算法
  • 在 Linux 系统上部署 Oracle 数据库涉及多个步骤