Как отформатировать JSON объект в RestSharp - PullRequest
0 голосов
/ 29 января 2020

Я использую RestSharp для вызова POST внешнего API.

Я добавляю данные с помощью:

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

API принимает {"name": "value"} ( правильный json формат), но НЕ принимает {name: "value"}

Если вы попытаетесь сделать вызов с неверным json объектом, он выдаст ошибку, подобную следующей:

"{\" type \ ": \" https://tools.ietf.org/html/rfc7231#section -6.5.1 \ ", \" title \ ": \" Произошла одна или несколько ошибок проверки. \ ", \" Status \ ": 400, \" traceId \ ": \" | 87c7263f-4ff49301d1865eed. \ ", \" Errors \ ": {\" $ \ ": [\" 'n' является недопустимым началом значения. Путь: $ | LineNumber: 0 | BytePositionInLine: 0. \ "]}}"

Это может быть связано со следующей проблемой

Я получаю это сообщение об ошибке при попытке выполнить вызов POST через request.AddParameter ({field_name}, {field_value})

Могу ли я сделать запрос, используя RestSharp, который допускает формат, аналогичный {"name": "value"}?

1 Ответ

0 голосов
/ 29 января 2020

Проверка документация

По запросам POST или PUT, это зависит от того, есть ли у вас файлы, прикрепленные к запросу. Если нет, параметры будут отправлены как тело запроса в форме name1 = value1 & name2 = value2. Кроме того, запрос будет отправлен как заявка / x- www-form-urlencoded.

. Правильный подход для этого:

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