You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含嵌套参数的Curl命令转换为RestSharp实现?

解决RestSharp发送嵌套JSON结构POST请求的问题

你的问题核心在于:你之前用AddParameter添加的是表单键值对参数,但目标API需要的是JSON格式的请求体,这就是服务器无法识别请求的原因。下面给你两种正确的实现方式:

方式1:定义实体类映射嵌套结构(推荐,更易维护)

首先创建对应API请求结构的类,让代码结构更清晰:

public class TranslationRequest
{
    public SourceInfo Source { get; set; }
    public TargetInfo Target { get; set; }
}

public class SourceInfo
{
    public string Dialect { get; set; }
    public string Text { get; set; }
}

public class TargetInfo
{
    public string Dialect { get; set; }
}

然后用RestSharp构建并发送请求:

// 初始化客户端和请求对象
var client = new RestClient("https://dev-api.itranslate.com/translation/v2/");
var request = new RestRequest(Method.Post);

// 添加授权头
request.AddHeader("Authorization", "Bearer 603160b7-cee1-4c13-bcd7-37420b55211d");

// 构建符合API要求的嵌套结构请求体
var requestBody = new TranslationRequest
{
    Source = new SourceInfo { Dialect = "en", Text = "Hello World" },
    Target = new TargetInfo { Dialect = "es" }
};

// 将对象自动序列化为JSON并添加到请求体(RestSharp会自动设置Content-Type为application/json)
request.AddJsonBody(requestBody);

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

方式2:使用匿名对象快速实现

如果不想额外定义类,也可以直接用匿名对象快速构建嵌套结构:

var client = new RestClient("https://dev-api.itranslate.com/translation/v2/");
var request = new RestRequest(Method.Post);

request.AddHeader("Authorization", "Bearer 603160b7-cee1-4c13-bcd7-37420b55211d");

// 直接构建匿名嵌套对象,和API要求的JSON结构完全匹配
var requestBody = new
{
    source = new { dialect = "en", text = "Hello World" },
    target = new { dialect = "es" }
};

request.AddJsonBody(requestBody);

var response = client.Execute(request);

为什么之前的方法无效?

你之前调用request.AddParameter("source", "dialect:'en'"),本质是在请求里添加了表单格式的键值对参数,最终请求体是类似source=dialect:'en'&source=Text:'Hello World'&target=dialect:'es'的格式,完全不符合API要求的JSON结构,所以服务器无法解析。

而AddJsonBody方法会自动将对象序列化为标准的JSON字符串,并设置请求头Content-Type: application/json,和你提供的Curl示例完全一致,这样服务器就能正确识别并处理请求了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 22:22:30