这是请求数据的示例
{
"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 \":[\"数据无效。期待一个 字典,但得到str。\"]},\" items \":[\"预期的项目列表但是 得到了类型\\" 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);
答案 0 :(得分:2)
您目前使用格式错误的数据构建请求正文。
您目前拥有...shipping_data = "{ ",...
,这只是一个字符串,因为在预期正确的对象模型或键/值对(字典)时会显示错误。
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中的例子有多接近