【问题标题】:API response "Unsupported Media Type" in C#C# 中的 API 响应“不支持的媒体类型”
【发布时间】:2021-05-09 17:20:12
【问题描述】:

以下是我的代码。

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).Result;
var result = response.Content.ReadAsStringAsync();
}

content 包含 json,我收到“不支持的媒体类型”作为响应。而response.IsSuccessStatusCode 是假的 我已经尝试添加

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

但我仍然得到相同的响应。 我也试过使用application/text,但没用 当我使用 Postman 进行尝试时,它运行正常。

【问题讨论】:

  • 你也可以展示你的 API 吗?

标签: c# api httpclient


【解决方案1】:

尝试从响应中删除 .Result 并添加 await 因为您使用的是 ReadAsStringAsync :

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

我强烈建议您添加到您的代码中:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    相关资源
    最近更新 更多