Почему RestSharp публикует пары имя / значение формы вместо JSON? - PullRequest
1 голос
/ 10 мая 2019

Почему RestSharp публикует пары имя / значение формы вместо JSON, если у меня есть эта строка: `request.RequestFormat = DataFormat.Json;

var request = new RestRequest($"api/Users/{userId}/UpdateProperty", Method.PUT);
request.RequestFormat = DataFormat.Json;
request.AddObject(new { key = key, value = value });
Execute(request);

Это приводит к следующему http-запросу (проверено с помощью Fiddler):

PUT /api/Users/c8c946f9-e1dd-49c6-9c7f-23572017058a/UpdateProperty HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 23
Accept-Encoding: gzip, deflate

key=Gender&value=Female

Я ожидал, что тело будет JSON:

{ key: "Gender", value: "Female" }

Что я делаю не так?

1 Ответ

0 голосов
/ 10 мая 2019

Вместо метода AddObject вы хотите использовать метод AddJsonBody. Возможно, вы также захотите добавить заголовок «Content-type» со значением «application / json».

В основном как-то так:

var request = new RestRequest($"api/Users/{userId}/UpdateProperty", Method.PUT);
request.AddHeader("Content-type", "application/json");
request.RequestFormat = DataFormat.Json;
request.AddJsonBody(new { key = key, value = value });
Execute(request);
...