RestSharp 简介
官方:RestSharp 可能是.NET 最流行的 HTTP 客户端库。它具有自动序列化和反序列化、请求和响应类型检测、多种身份验证和其他有用功能,正被数十万个项目使用。
RestSharp 的主要目的是通过 HTTP 对远程资源进行同步和异步调用。顾名思义,RestSharp 的主要受众是使用 REST API 的开发人员。只要您具有要发送的资源 URI 和请求参数符合 W3C HTTP 标准,RestSharp 就 可以通过 HTTP 调用任何 API。
由于 WMS 会出现作为 HTTP 客户端去调用 API 的场景,所以就用到了 RestSharp。之前本人有自己封装过一个简单的 HttpClient 库,也使用了一段时间,但是考虑到后续需求的多样性,所以还是使用了 RestSharp 进行开发,项目中我也对其进行了简单的二次封装,方便使用。
关于 RestSharp 的快速上手,这里我就不赘述了,官方提供了很详细的文档,建议大家自行学习使用,下面我会介绍 WMS 中对 RestSharp 的二次封装和使用,另外也说明下使用过程中遇到的各种坑。
RestSharp 二次封装
封装位置
在进行封装前,先考虑将其封装哪一层,这里我们既然将其封装为一个通用工具,让每个项目都可以使用,自然也就考虑放在Wpf.MvvmLight.SelfHost.Common这一层了。
安装包
打开Wpf.MvvmLight.SelfHost.Common项目后,可以通过 nuget 包管理工具直接搜索"RestSharp"进行包的安装,也可以使用 IDE 或命令行来进行包的安装:
dotnet add package RestSharp
开始封装
添加完 RestSharp 包后,接下来就可以进入正式的封装工作了。这里我对 RestSharp 进行了泛型和非泛型的两种封装,每种封装内分别提供了同步和异步方法,可供大家参考使用,如果有其他的需求,同样也可在此封装的基础上继续进行拓展。
非泛型封装
public class RangeRestApi
{
#region 同步
public string Get(string url, object pars = null)
{
var type = Method.Get;
RestResponse reval = GetApiInfo(url, pars, type);
return reval.Content;
}
public string Post(string url, object pars = null)
{
var type = Method.Post;
RestResponse reval = GetApiInfo(url, pars, type);
return reval.Content;
}
public string Delete(string url, object pars = null)
{
var type = Method.Delete;
RestResponse reval = GetApiInfo(url, pars, type);
return reval.Content;
}
public string Put(string url, object pars = null)
{
var type = Method.Put;
RestResponse reval = GetApiInfo(url, pars, type);
return reval.Content;
}
private static RestResponse GetApiInfo(string url, object pars, Method type)
{
var request = new RestRequest();
request.Method = type;
if (pars != null)
{
request.AddObject(pars);
}
var client = new RestClient(url);
RestResponse re

本文介绍了RestSharp作为.NET中最受欢迎的HTTP客户端库,用于同步和异步调用RESTAPI。作者分享了在WMS项目中如何对RestSharp进行二次封装,包括泛型和非泛型的方法,同时提供了同步和异步的示例代码。文章还提及了在开发过程中遇到的系统.Net.Http和System.ValueTuple版本冲突问题及其解决方案。
最低0.47元/天 解锁文章
2097





