#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"));