以下是使用 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 请求,具体选择取决于你的项目需求和个人偏好。

RestClient C# 举例 是用jsonbody ,并列出httpclient 等价的方式的更多相关文章

  1. 历时小半年总结之JAVA

    一.JavaSE 1.多线程 (1).进程与线程的区别? 答:进程是所有线程的集合,每一个线程是进程中的一条执行路径,线程只是一条执行路径. (2).为什么要用多线程? 答:提高程序效率 (3).多线 ...

  2. HTTP超文本传输协议-HTTP/1.1中文版

    摘要 超文本传输协议(HTTP)是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议.它是一种通用的,不分状态(stateless)的协议,除了诸如名称服务和分布对象管理系统之类的超文本用途外 ...

  3. ms-dos中 MSCDEX命名语法详解

    一.MSCDEX的语法及参数:        MSCDEX可以在AUTOEXEC.BAT文件中自动加载,也可以在DOS的命令行中载入但要使用光驱,前提条件是在Config.sys文件中加载了光驱的驱动 ...

  4. BFC给我的帮助以及对hasLayout的认识

    布局的时候经常想让一个或几个元素并并排的放在一起,有时给其中的一个浮动,元素是在一行了,可还是都左边重叠了,总是这样那样改来改去,小白的我也是醉了! 今天偶然间看到了了BFC这个东东,虽然现在还是不是 ...

  5. SaltStack之Job管理和Runner(八)

    SaltStack之Job管理和Runner 配置文件/etc/salt/master cachedir: /var/cache/salt/master # cache路径 keep_jobs: 24 ...

  6. 【转】关于Block Formatting Context--BFC和IE的hasLayout

    转自穆乙 http://www.cnblogs.com/pigtail/ 一.BFC是什么? BFC(Block Formatting Context)直译为“块级格式化范围”. 是 W3C CSS ...

  7. 关于Block Formatting Context--BFC和IE的hasLayout

    转文请标明 --- 出处:穆乙 http://www.cnblogs.com/pigtail/ 一.BFC是什么? BFC(Block Formatting Context)直译为"块级格式 ...

  8. hadoop面试100道收集(带答案)

    1.列出安装Hadoop流程步骤 a) 创建hadoop账号 b) 更改ip c) 安装Java 更改/etc/profile 配置环境变量 d) 修改host文件域名 e) 安装ssh 配置无密码登 ...

  9. AIX学习笔记(更新中)

    AIX操作系统基本命令 系统的进入和退出login: 输入用户名(例如:user01)password: 输入用户口令若用户名及口令均正确,则用户将登陆成功.此时系统会出现命令提示符 $或#,即表示可 ...

  10. CSS3字体模块

    介绍 字体提供了包含字符的视觉表现的资源.在最简单的等级中,其包含由字符编码到表示这些字符的形状(被称为字形)的映射信息.根据一组标准字体属性被分入一个字体家族的字体共享一个通用设计风格.在一个家族中 ...

随机推荐

  1. 在centos上部署docker与wordpress

    简介 有一个wordpress服务器需要迁移了,之前都是别人维护的,现在需要迁移到自己维护,给的系统是linux centos 8.4.迁移包括mysql,php,phpmyadmin,wordpre ...

  2. 使用Spring提供的BeanUtils.copyProperties()方法报错:Could not copy property 'xxx' from source to target

    使用Spring提供的BeanUtils.copyProperties()方法报错:Could not copy property 'xxx' from source to target; neste ...

  3. mysql数据库 主从同步

    我们知道mysql数据库为了得到更高性能,一般会读写分离.主库用于写操作,比如用于执行的insert.update操作:从库用于读,也就是常见的select操作. 写数据都在主库(master)操作, ...

  4. Qt开发经验小技巧166-170

    有时候需要暂时停止某个控件发射信号(比如下拉框combobox添加数据的时候会触发当前元素改变信号),有多种处理,推荐用 blockSignals 方法. //方法1:先 disconnect 掉信号 ...

  5. Qt编写的项目作品13-机房安全作业预警系统

    一.功能特点 显示维修间所有图像: 门外1号红外,门内2号红外: 1号先报警,紧接2号报警,人员进入计时: 图标显示:人员图标和报警等级图标,人员进入了,人员图标闪烁,等级图标对应不同时间: 功能要求 ...

  6. [炼丹术]Yolov8训练使用总结

    Yolov8训练使用总结 Yolov8训练使用总结 介绍 安装 Install pip install ultralytics Development git clone https://github ...

  7. Mysql连接报错排查解决记录

    Mysql连接报错排查解决记录 背景: 系统:uos server-1060e ​ 运行环境kvm虚拟机 ​ mysql版本:5.7.44, for Linux (x86_64) 问题现象: 宿主机重 ...

  8. Appium_WebDriverAgent安装

      一.WebDriverAgent安装到ios测试设备 a) 切换到appium 的appium-webdriveragent目录(/Applications/Appium.app/Contents ...

  9. Docker npm install:npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY 。。reason: unable to get local issuer certificate 解决办法

    这个是需要证书导致无法连接,临时解决办法是设置 npm set strict-ssl=false 在 Dockerfile文件里的  RUN npm install 之前添加 RUN npm set ...

  10. RocketMQ的架构设计、关键特性、与应用场景详解

    内容大纲: 1.RocketMQ的简介与演进 2. RocketMQ的架构设计 3.RocketMQ的关键特性 4.RocketMQ的应用场景 RocketMQ的简介 RocketMQ一个纯java. ...