【发布时间】:2016-04-08 12:44:41
【问题描述】:
我不确定,但在我看来,.NET HttpClient 库的默认实现是有缺陷的。看起来它在 PostAsJsonAsync 调用中将 Content-Type 请求值设置为“text/html”。我试图重置请求值,但不确定我是否正确执行此操作。任何建议。
public async Task<string> SendPost(Model model)
{
var client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsJsonAsync(Url + "api/foo/", model);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
【问题讨论】:
-
你能把你得到的错误贴出来吗?恕我直言,代码应该可以工作,正如其他人在 SO 上发布的那样:stackoverflow.com/questions/10679214/…
-
我得到的错误是一般的“错误请求(400 状态代码)”。似乎默认内容类型值设置为“text/html”,而不是“application/json”。你会认为一个名为 PostAsJsonAsync 的方法会自动设置这个!
-
我也遇到了这个问题?为什么
PostAsJson不会将内容类型设置为 json?它只是没有意义。
标签: c# .net json asp.net-web-api2