首页 > 编程语言 >RestClient C# 举例 是用jsonbody ,并列出httpclient 等价的方式

RestClient C# 举例 是用jsonbody ,并列出httpclient 等价的方式

时间:2024-05-04 09:05:40浏览次数:17  
标签:Console 请求 C# jsonbody WriteLine new using response RestClient

以下是使用 RestSharp 发送 POST 请求并附带 JSON 请求体的示例,以及相应的使用 HttpClient 的等价方式:

首先,使用 RestSharp:

using System;
using RestSharp;
using Newtonsoft.Json;

class Program
{
    static void Main(string[] args)
    {
        // 创建 RestClient 实例
        var client = new RestClient("https://api.example.com");

        // 创建 RestRequest 实例并指定资源路径和请求方法
        var request = new RestRequest("/endpoint", Method.POST);

        // 创建一个匿名对象作为请求体,并序列化为 JSON 字符串
        var requestBody = new
        {
            Name = "John",
            Age = 30
        };
        string jsonBody = JsonConvert.SerializeObject(requestBody);

        // 设置请求体为 JSON 类型
        request.AddParameter("application/json", jsonBody, ParameterType.RequestBody);

        // 执行请求并获取响应
        IRestResponse response = client.Execute(request);

        // 检查响应是否成功
        if (response.IsSuccessful)
        {
            // 打印响应内容
            Console.WriteLine("Response content:");
            Console.WriteLine(response.Content);
        }
        else
        {
            // 打印错误信息
            Console.WriteLine($"Error: {response.ErrorMessage}");
        }
    }
}

接下来,使用 HttpClient 的等价方式:

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

class Program
{
    static async Task Main(string[] args)
    {
        // 创建 HttpClient 实例
        using (HttpClient client = new HttpClient())
        {
            // 创建一个匿名对象作为请求体
            var requestBody = new
            {
                Name = "John",
                Age = 30
            };
            string jsonBody = JsonConvert.SerializeObject(requestBody);

            // 创建 StringContent 对象,指定请求体和内容类型为 JSON
            var content = new StringContent(jsonBody, Encoding.UTF8, "application/json");

            // 发送 POST 请求
            HttpResponseMessage response = await client.PostAsync("https://api.example.com/endpoint", content);

            // 检查响应是否成功
            if (response.IsSuccessStatusCode)
            {
                // 读取响应内容并打印
                string responseBody = await response.Content.ReadAsStringAsync();
                Console.WriteLine("Response content:");
                Console.WriteLine(responseBody);
            }
            else
            {
                // 打印错误信息
                Console.WriteLine($"Failed to fetch data. Status code: {response.StatusCode}");
            }
        }
    }
}

这两种方式都可以用来发送带有 JSON 请求体的 POST 请求,具体选择取决于你的项目需求和个人偏好。

标签:Console,请求,C#,jsonbody,WriteLine,new,using,response,RestClient
From: https://www.cnblogs.com/mojiejushi/p/18171961

相关文章

  • HttpClient 进行soap请求
    当你在使用C#的HttpClient进行SOAP请求时,确保你的代码类似于以下示例:usingSystem;usingSystem.Net.Http;usingSystem.Text;usingSystem.Threading.Tasks;classProgram{staticasyncTaskMain(string[]args){try{//创建H......
  • VMware虚拟机安装Centos-7.9
    VMware虚拟机安装Centos-7.9创作不易,点赞关注一下吧1.安装VMwareWorkstationPro大家根据自己的实际情况安装合适版本的VMwareWorkstationPro,具体的安装推荐及各版本的下载链接大家可以看我之前发布的一篇博客:VMwareWorkstationPro各版本下载链接汇总(特全!!!)。1.1运行安装程......
  • C# 搭建一个 基于ISqlSugarClient 三层架构框架 涉及数据库仓储 然后中间又有业务逻辑
    要在C#中搭建基于ISqlSugarClient的三层架构框架,你需要定义数据访问层(DAL)、业务逻辑层(BLL)和表现层(UI)。下面是一个完整的例子,涉及数据库仓储、业务逻辑层,以及依赖注入。这个例子基于ASP.NETCoreMVC构建,使用ISqlSugarClient来处理数据访问。这个例子中,我们将使用User作为一个简单......
  • 介绍一下opentcs
    OpenTCS是一个开源的自动运载系统(AutomatedGuidedVehicle,AGV)控制系统。它旨在管理和控制自动化运输车辆,例如AGV或自动搬运车(AMR),在工业和商业环境中执行各种任务。下面是一些关键特性和组件:任务调度和优化:OpenTCS能够规划和优化AGV的任务执行顺序,以最大程度地提高效率和资源......
  • SQL注入-基于Pikachu的学习
    zhSQL注入SQL数据库的基本语句SQL教程|菜鸟教程(runoob.com)史上最全SQL基础知识总结(理论+举例)-CSDN博客SQL注入原理SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分......
  • 题解【[ABC147F] Sum Difference】
    题目链接下为口胡题解:入手方向推导:直接考虑题目所给式子显然困难:\[w(S)=\sum_{i\inS}A_i-\sum_{i\notinS}A_i\]因为两个式子虽然相关但是都在变化,不妨转化为:\[w(S)=2\times\sum_{i\inS}A_i-\sum_{i=1}^nA_i\]这样只用求出有多少个不同的\(\sum_{i\inS}A_i\)。由于......
  • CMS垃圾收集器深入解析
    CMS本身是个非常极端的垃圾收集器,他过于注重停顿时间,而不在乎吞吐量。正常情况使用标记清除算法,所以也会有内存碎片的产生,整个CMS垃圾收集的过程,主要是为了缩短停顿时间,所以在有些环节会与业务线程并发执行。1.初始标记,根据GCRoot的引用链,只标记第一个对象,此时是多个标记线程并......
  • C语言代码题
    C语言代码--练习题试写一个函数,计算字符串s中最大连续相同的字符个数。例如,若s为"aaabbbb",则返回值为4;若s为"abcde",则返回值为1。#include<stdio.h>/******************************************************************************functionname:max_sam......
  • excel - SUMIF的使用
    SUMIF(range,criteria,[sum_range])range是你要根据条件进行检查的单元格区域。criteria是根据其检查range的条件。这个条件可以是数字、表达式、或文本字符串。[sum_range]是可选的参数,当要求和的数字位于与range不同的区域时使用。如果省略sum_range,Excel会默认......
  • SpringMVC(3)-request域和session域的作用和区别
    最近看到项目中用到request域和session域,脑子里一直没有一个明确的区分,结合GPT整理了一份总结。为了理解request和session的作用和区别,可以想象我们正在参加一个大型的科技会议。会议中,每位与会者(用户)都会与会议工作人员(服务器)进行交流。在这个比喻中,request域和session域是用于......