Restsharp请求参数语法问题

Restsharp request parameter syntax issue

这是请求数据的例子

{
    "delivery_needed": "false",
    "merchant_id": "201", 
    "merchant_order_id": "123456",
    "amount_cents": "25000",
    "currency": "USD", 
    "items": [],
    "shipping_data": { 
        "name": "test_user", 
        "street": "sample street", 
        "city": "cairo", 
     }
}

我写了 c# 代码,但运输数据和项目的语法似乎有错误。

这是我得到的错误

{\"shipping_data\":{\"non_field_errors\":[\"Invalid data. Expected a dictionary, but got str.\"]},\"items\":[\"Expected a list of items but got type \"str\".\"]}

这是我写的c#代码,语法搞糊涂了

var client = new RestClient("url");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", request.AddJsonBody(new { delivery_needed = "false", merchant_id = "201", merchant_order_id = "123456", amount_cents = "25000", currency = "USD", items = "[]", shipping_data = "{ ",  name = "test_user", street = "sample street", city = "Cairo"}), ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

您当前使用格式错误的数据构建请求正文。

您当前有 ...shipping_data = "{ ",... 这只是一个字符串,当它期望正确的对象模型或 key/value 对(字典)时指示的错误。

items 根据错误信息也没有正确提供。它需要一个数组,但它又提供了一个字符串 "[]"

您需要正确构建模型

var model = new {
    delivery_needed = "false",
    merchant_id = "201",
    merchant_order_id = "123456",
    amount_cents = "25000",
    currency = "USD",
    items = new object[0], //<--This needs to be an array
    shipping_data = new {  //<--This needs to be a proper object
        name = "test_user",
        street = "sample street",
        city = "Cairo"
    }
};
var client = new RestClient("url");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddJsonBody(model); //<-- this will serialize and add the model as a JSON body.
IRestResponse response = client.Execute(request);

注意要解析为请求正文的模型的构造。看看它与 OP

中的示例有多相似