【问题标题】:How to format a JSON object within RestSharp如何在 RestSharp 中格式化 JSON 对象
【发布时间】:2020-01-29 00:06:21
【问题描述】:

我正在使用 RestSharp 对外部 API 进行 POST 调用。

我正在通过以下方式添加有效负载:

request.AddParameter({field_name}, {field_value})

API 接受 { "name": "value" } (正确的 json 格式) 但不接受 {名称:“价值”}

如果您尝试使用不正确的 json 对象进行调用,则会抛出类似于以下内容的错误:

"{"type":"https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1","title":"出现一个或多个验证错误。","status" :400,"traceId":"|87c7263f-4ff49301d1865eed.","errors":{"$":["'n' 是一个无效的值的开始。路径:$ |行号:0 | BytePositionInLine: 0。"]}}"

这可能是由于以下issue

我在尝试通过 POST 调用时收到同样的错误消息 request.AddParameter({field_name}, {field_value})

有没有办法让我使用 RestSharp 发出请求,允许格式类似于 {“名称”:“价值”}?

【问题讨论】:

  • 你熟悉 Postman 这个工具吗?如果您可以让您的请求在那里工作,邮递员可以生成 RestSharp 代码。
  • 请提供最少的可重现代码。你将什么 json 发送到什么 api?
  • @Crowcoder 谢谢!我能够使用 Postman 提供的代码重现结果!

标签: c# rest json.net restsharp system.text.json


【解决方案1】:

查看the documentation

在 POST 或 PUT 请求中,这取决于您是否将文件附加到请求中。如果没有,参数将作为请求的主体以 name1=value1&name2=value2 的形式发送。此外,请求将作为 application/x-www-form-urlencoded 发送。

正确的做法是:

var myJson = new { /*<field_name> = <field_value>, <field2> = <value2> ... etc*/ }
request.AddJsonBody(myJson);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-16
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    相关资源
    最近更新 更多