我必须使用 httpclient 调用 C# 类中的 API。 API 需要内容类型标头,我想获取 JSON 形式的响应,因此我将 content-type: application/json 添加到 Postman 中的标头并执行发布请求,它完美运行:
但是如果我在内容类型 API 中编写其他内容,则会返回 html 代码。 我必须做与 C# 中的 Postman 完全相同的事情。这是我的示例代码:
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("adress");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "adress");
request.Content = new StringContent(myjson, Encoding.UTF8, "application/json");
var y = await client.SendAsync(request);
var x = await y.Content.ReadAsStringAsync();
但结果始终是 HTML 而不是 JSON。
有趣但以这种方式解决:
request.Content = new StringContent(myjson, Encoding.UTF8);
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
request.Content.Headers.Add("No-Paging", "true");