C# 使用RestSharp库实现POST请求

上次临时使用Python发送POST请求,从指定网址获取需要的信息。当时觉得Python顺手,支持的库也熟悉些,就使用3分钟将这个POST请求的功能写好了,也打包成为了exe文件,在C#应用程序调用,且能正常获取需要的信息,问题是解决了,但是收到了许多热心的朋友,提出了疑问,C#本身就可以实现POST请求,也又很多实用的库可以使用,为什么这么折腾啊!

在日常工作和生活中,我觉得首要的是解决问题,不管我用什么方式,首先的实现需要的功能,其次才追寻效率和解决问题的复杂性。今天,使用了RestSharp库测试了一下,也是可以的。不过这个库做了重要的调整,使用方式发生了一些改变。

https://restsharp.dev/v107/#mocking

RestSharp 可以将请求正文序列化为 JSON 或 XML 并反序列化响应。它还可以根据不同的参数类型(路径、查询、表单或正文)形成有效的请求 URI。RestSharp 的最新版本是 v107。这是一次重大升级,其中包含相当多的重大更改。最重要的变化是 RestSharp 停止使用遗留HttpWebRequest类,而是使用众所周知的“HttpClient”。这一举措解决了很多问题,例如由于不正确的HttpClient实例缓存导致连接挂起、更新的协议支持以及许多其他问题。另一个重大变化是SimpleJson完全从代码库中退休。相反,RestSharp 使用JsonSerializer包中的System.Text.Json,这是 ASP.NET Core 的默认序列化程序。

安装库 RestSharp.108.0.1

封装GET和POST函数

/// <summary>

/// Post提交

/// </summary>

/// <param name="url">提交地址</param>

/// <param name="content">提交的Post信息</param>

/// <param name="contentType">提交信息格式类型</param>

/// <returns></returns>

public static string HttpPost(string url, string content, string contentType)

{

    try

    {

        var client = new RestClient(url);

        var request = new RestRequest();

        request.Method = Method.Post;

        request.Timeout = 5000;

        request.AddParameter(contentType, content, ParameterType.RequestBody);

        var response = client.Execute(request);

        return response.Content;

    }

    catch (Exception ex)

    {

        return ex.ToString();

    }

}



/// <summary>

/// Get提交

/// </summary>

/// <param name="url">提交地址</param>

/// <returns></returns>

public static string HttpGet(string url)

{

    try

    {

        var client = new RestClient(url);

        var request = new RestRequest();

        request.Method = Method.Get;

        request.Timeout = 5000;

        request.AddHeader("content-type", "text/html; charset=utf-8");

        request.AddHeader("content-encoding", "gzip");

        var response = client.Execute(request);

        return response.Content;

    }

    catch (Exception ex)

    {

        return ex.ToString();

    }

}

测试OK,和调用Python的应用程序达到的结果一样!

详细文档可去官网查看,我仅仅用来实现自己的需求。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用RestSharp可以方便地实现GET和POST请求,并发送JSON参数。以下是使用RestSharp进行GET和POST请求的示例代码: 首先,确保你已经在项目中安装了RestSharp。你可以通过NuGet包管理器或手动下载并添加引用来完成安装。 GET请求示例: ```csharp using RestSharp; using System; namespace RestSharpExample { class Program { static void Main(string[] args) { // 创建RestClient实例并设置请求的URL var client = new RestClient("https://example.com/api/endpoint"); // 创建GET请求 var request = new RestRequest(Method.GET); // 添加请求参数(可选) request.AddParameter("key", "value"); // 执行请求 var response = client.Execute(request); // 检查响应是否成功 if (response.IsSuccessful) { // 读取响应内容 Console.WriteLine(response.Content); } else { Console.WriteLine("请求失败: " + response.StatusCode); } } } } ``` POST请求示例: ```csharp using RestSharp; using System; namespace RestSharpExample { class Program { static void Main(string[] args) { // 创建RestClient实例并设置请求的URL var client = new RestClient("https://example.com/api/endpoint"); // 创建POST请求 var request = new RestRequest(Method.POST); // 添加请求头(可选) request.AddHeader("Content-Type", "application/json"); // 添加JSON参数 request.AddJsonBody(new { key1 = "value1", key2 = "value2" }); // 执行请求 var response = client.Execute(request); // 检查响应是否成功 if (response.IsSuccessful) { // 读取响应内容 Console.WriteLine(response.Content); } else { Console.WriteLine("请求失败: " + response.StatusCode); } } } } ``` 请将`https://example.com/api/endpoint`替换为实际的目标URL,并根据需要修改请求的参数和头部信息。以上示例代码可以帮助你发送GET和POST请求,并发送JSON参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flysh05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值