Ответ API «Неподдерживаемый тип носителя» на языке C#

#c# #api #httpclient

#c# #API #httpclient

Вопрос:

Ниже приведен мой код.

 using (var client = new HttpClient())
{
var content = JsonConvert.SerializeObject(item);
var MemberIdDto = new StringContent(content, UnicodeEncoding.UTF8, "application/json");
client.DefaultRequestHeaders.Add("WWW-Authenticate", "Basic 123456789");
var response = client.PostAsync(URL, MemberIdDto).Resu<
var result = response.Content.ReadAsStringAsync();
}
 

content содержит json, в ответ я получаю «Неподдерживаемый тип носителя». и response.IsSuccessStatusCode равно false
Я попытался добавить

 client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
 

но все же я получаю тот же ответ.
Я также пытался использовать application/text , но это не сработало
Когда я попробовал это с помощью Postman, он сработал правильно.

Комментарии:

1. Можете ли вы также показать свой API?

2. «Неподдерживаемый тип носителя» буквально означает, что сервер не принимает ваш контент в формате JSON. Вы уверены, что ваш серверный API принимает JSON (а не XML или что-то еще)?

Ответ №1:

Попробуйте удалить .Result из ответа и добавить await, поскольку вы используете ReadAsStringAsync :

 var response = client.PostAsync(URL, MemberIdDto);
var result = await response.Content.ReadAsStringAsync();
 

и я настоятельно рекомендую вам добавить в свой код:

 client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));