ASP.NET RestSharp帮助类 C# RestSharp帮助类

发布时间 2023-07-05 17:49:40作者: 我是韩一
  • .NETFramework版本: v4.7.2
  • RestSharp版本:110.2.1.0
  • 直接NuGet下载RestSharp直接用

  废话不多说直接上代码

  
using System.Collections.Generic;
using RestSharp;

namespace 命名空间
{
    public static class HttpClientHelper
    {
        private const string Url = "http://localhost:5000/";

        /// <summary>
        /// Http访问帮助类
        /// </summary>
        /// <param name="method">请求方式 Get Post Delete Put 等例(Method.Post)</param>
        /// <param name="action">请求方法</param>
        /// <param name="requestPrm">请求参数</param>
        /// <param name="requestHeader">请求头</param>
        /// <returns></returns>
        public static string Request(Method method, string action, string requestPrm = null,
            Dictionary<string, string> requestHeader = null)
        {
            var serviceUrl = Url + action;
            //1.首先创建一个 RestClient对象
            //serviceUrl是需要请求的地址
            var client = new RestClient(serviceUrl);
            //2.创建一个请求,这里可以指定请求的类型
            var request = new RestRequest { Method = method };
            //3.给请求加各种参数
            //添加头部信息
            if (requestHeader != null)
            {
                foreach (var req in requestHeader)
                {
                    request.AddHeader(req.Key, req.Value);
                }
            }

            //添加文件
            //也可以通过字节流的方式添加文件 AddFileBytes(string name, byte[] bytes, string filename, string contentType = "application/x-gzip")
            // request.AddFile("filePath", pdfPath);
            //添加参数
            if (!string.IsNullOrWhiteSpace(requestPrm))
            {
                request.AddBody(requestPrm);
            }

            // request.AddParameter("Timeout", options.Timeout.Value);
            //官网中还有好多添加参数的方法
            //可以查看该地址进行https://restsharp.dev/api/RestSharp.html#class-restrequest
            //4.执行请求,并获得返回值
            var restResponse = client.Execute(request);
            var result = restResponse.Content;
            //处理返回值序列化也进行了封装,可以直接调用方法
            //例如 Execute<Call>(request),可以直接将返回值序列化为对象
            //至此一个请求就发送接收成功了
            //使用起来还是比较方便的
            return result;
        }
    }
}
HttpClient