You need to enable JavaScript to run this app. C#中使用RestRequest发送JSON格式POST请求的最优实现方式
优惠活动
大模型
产品
解决方案
定价
更多

C#中使用RestRequest发送JSON格式POST请求的最优实现方式

C# 发送JSON格式POST请求最优实现方案

前置说明

你给出的示例代码使用RestSharp封装库实现,该库是.NET生态中对新手非常友好的HTTP请求工具,以下方案完全匹配你要求的核心逻辑格式,同时规避手动拼接JSON的易错问题。


实现步骤

1. 安装依赖包

通过NuGet包管理器安装RestSharp最新稳定版即可。

2. 定义强类型实体类

不建议手动拼接JSON字符串,用强类型映射可以完全避免JSON语法错误,写错字段IDE会直接提示

// 所有者信息映射类
public class Owner
{
    public string fullName { get; set; }
    public string ssn { get; set; }
    public string dateOfBirth { get; set; }
}

// 请求主体映射类
public class DealPostData
{
    public string externalDealId { get; set; }
    public string dealName { get; set; }
    public string dealDba { get; set; }
    public string federalId { get; set; }
    public Owner owner1 { get; set; }
    public Owner owner2 { get; set; }
    public Owner owner3 { get; set; }
}

3. 编写请求方法(核心逻辑完全匹配要求格式)

using RestSharp;
using System.Text.Json;

/// <summary>
/// 发送JSON格式POST请求
/// </summary>
/// <param name="apiUrl">目标接口地址</param>
/// <param name="postData">请求业务数据</param>
/// <returns>接口响应结果</returns>
public async Task<RestResponse> PostJsonRequest(string apiUrl, DealPostData postData)
{
    var client = new RestClient(apiUrl);
    // 以下是你要求的核心逻辑格式
    var request = new RestRequest(Method.POST);
    request.AddHeader("Content-Type", "application/json");
    // 自动序列化对象为JSON字符串
    string jsonPayload = JsonSerializer.Serialize(postData);
    request.AddParameter("application/json", jsonPayload, ParameterType.RequestBody);

    // 发送请求,如需同步调用可以把ExecuteAsync改成Execute,去掉async/await
    var response = await client.ExecuteAsync(request);
    return response;
}

4. 调用示例

// 构造业务数据
var requestData = new DealPostData
{
    externalDealId = "1",
    dealName = "Test Ver2",
    dealDba = "Test Ver2",
    federalId = "12312111",
    owner1 = new Owner { fullName = "J1", ssn = "123123220", dateOfBirth = "1988-01-01" },
    owner2 = new Owner { fullName = "J2", ssn = "123123221", dateOfBirth = "1988-01-02" },
    owner3 = new Owner { fullName = "J3", ssn = "123123222", dateOfBirth = "1988-01-02" }
};

// 调用方法发请求
var response = await PostJsonRequest("替换成你的目标接口地址", requestData);

// 响应结果判断
if (response.IsSuccessful)
{
    Console.WriteLine("请求成功,返回内容:" + response.Content);
}
else
{
    Console.WriteLine("请求失败,错误:" + response.ErrorMessage);
}

注意事项

  • 如果你用的是.NET Framework老版本,没有自带System.Text.Json,可以替换为Newtonsoft.Json的JsonConvert.SerializeObject(postData)方法做序列化
  • 生产环境建议把RestClient做成单例复用,不要每次请求都新建实例,避免端口占用问题

内容的提问来源于stack exchange,提问作者maitre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 23:36:03