Ошибка REST - запрос содержит тело объекта, но не содержит заголовок Content-Type. Поданный тип медиа-приложения application / octet-stream не поддерживает этот ресурс - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь отправить запрос POST.При отправке через POSTMAN все идет хорошо, затем я пытаюсь отправить его с помощью кода C #:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

var client = new RestClient(MY-URL);
var request = new RestRequest(Method.POST);
request.Credentials = new System.Net.NetworkCredential(ServerUsername, Password);
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("undefined", My JSON Data, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Я получаю эту ошибку:

Запрос содержит тело объекта, нонет заголовка Content-Type.Предполагаемый тип мультимедиа «application / octet-stream» не поддерживается для этого ресурса

Как его решить?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Попробуйте написать:

Content-Type: application/json; charset=UTF-8"

Или добавить в шапку:

Accept: application/json
0 голосов
/ 28 ноября 2018

Добавление параметра в качестве тела изменяет тип содержимого запроса.

В вашем примере

request.AddParameter("undefined", My JSON Data, ParameterType.RequestBody);

переопределяет ранее установленный тип содержимого.

Если высериализацию объектной модели для отправки, затем замените request.AddParameter на

request.AddJsonBody(model);

, который будет сериализовать и включить соответствующую информацию заголовка

В противном случае вам нужно будет включить тип при добавлении параметра

request.AddParameter("application/json", "My JSON Data", ParameterType.RequestBody);
...