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

WPF怎么通过RestSharp向后端发请求

1.下载RestSharpNuGet包

2.请求类和响应类

public class ApiRequest
{
    /// <summary>
    /// 请求地址
    /// </summary>
    public string Route { get; set; }

    /// <summary>
    /// 请求方式
    /// </summary>
    public Method Method { get; set; }

    /// <summary>
    /// 请求参数
    /// </summary>
    public Object Parameters { get; set; }

    /// <summary>
    /// 请求头,表示发送的请求的类型、数据格式等
    /// </summary>
    public string ContentType { get; set; } = "application/json";
}
public class ApiResponse
{
    public int Code { get; set; }

    public string Msg { get; set; }

    public Object Data { get; set; }
}

3.封装请求工具类

 public class HttpClient
 {
     private readonly RestClient Client; // 客户端
     private readonly string baseUrl = "http://localhost:63615/api/";

     public HttpClient()
     {
         Client = new RestClient();
     }

     /// <summary>
     /// 执行请求
     /// </summary>
     /// <param name="request">请求数据</param>
     /// <returns>响应数据</returns>
     public ApiResponse Execute(ApiRequest ApiRequest)
     {
         var request = new RestRequest(ApiRequest.Method);

         request.AddHeader("Content-Type", ApiRequest.ContentType);

         if (ApiRequest.Parameters!= null)
         {
             // SerializeObject 序列化参数 object -> json
             request.AddParameter("params", JsonConvert.SerializeObject(ApiRequest.Parameters), ParameterType.RequestBody);
         }
         // 设置请求地址
         Client.BaseUrl = new Uri(baseUrl + ApiRequest.Route);

         // 发送请求
         var res = Client.Execute(request);
         if (res.StatusCode == System.Net.HttpStatusCode.OK)
         {
             // 反序列化响应数据 json -> object
             return JsonConvert.DeserializeObject<ApiResponse>(res.Content);
         }
         else
         {
             return new ApiResponse { Code = (int)res.StatusCode, Msg = res.ErrorMessage };
         }
     }
 }

4. 在接口中引入该类,并在构造函数中初始化

private readonly IEventAggregator _eventAggregator;
public LoginUCViewModel(HttpClient httpClient)
{
    //请求Client
    _httpClient = httpClient;
}

5.发送请求

// 发送请求
ApiRequest apiRequest = new ApiRequest();
// 请求方式
apiRequest.Method = RestSharp.Method.POST;
// 请求地址(这里只写这一段是因为定义的时候定义了baseUrl
apiRequest.Route = "Account/Register";
AccountInfoDto.Password = Md5Helper.GetMd5(AccountInfoDto.Password);
apiRequest.Parameters = AccountInfoDto;
ApiResponse response = _httpClient.Execute(apiRequest);

 到此,简单的请求封装就结束了


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

相关文章:

  • 全面解析:容器化技术及其应用
  • react18中redux-promise搭配redux-thunk完美简化异步数据操作
  • 安全性测试
  • 【OpenSearch】安装部署OpenSearch和OpenSearch-Dashboard
  • C++11新特性之Lambda函数
  • [Prometheus学习笔记]从架构到案例,一站式教程
  • [ 问题解决篇 ] 解决windows虚拟机安装vmtools报错-winserver2012安装vmtools及安装KB2919355补丁 (附离线工具)
  • uni-app发起请求以及请求封装,上传及下载功能(六)
  • 【Android 系统中使用CallStack类来追踪获取和操作调用栈信息】
  • ubuntu编译内核安装启动
  • 大学适合学C语言还是Python?
  • 【AI日记】24.11.03 熟悉Hugging Face和开源大模型选择
  • 几款非常出色的可视化工具,帮助你轻松地构建和运行 AI 模型
  • Python 列表的下标索引
  • 如何下载安装TestLink?
  • openpnp - 在openpnp中单独测试相机
  • Spring Boot在校园社团信息管理中的实践与思考
  • linux桌面通知
  • Dify 中的 Bearer Token 与 API-Key 鉴权方式
  • 【postman】工具下载安装
  • UOS 安装usb wifi 网卡驱动
  • GBase与梧桐数据库数据加载与导出的差异
  • gin框架可以构建微服务吗?
  • ip报文头解析
  • 探索 ONLYOFFICE 8.2 版本:更高效、更安全的云端办公新体验
  • 51c自动驾驶~合集4