我有这段代码可以将我的内容标题从{text/plain; charset=utf-8}
更改为"{application/json}"
using (System.Net.Http.HttpClient client = new System.Net.Http.HttpClient())
{
string content = "some json data";
System.Net.Http.StringContent sc = new System.Net.Http.StringContent(content);
sc.Headers.Remove("Content-Type"); // "{text/plain; charset=utf-8}"
sc.Headers.Add("Content-Type", "application/json");
System.Net.Http.HttpResponseMessage response = client.PostAsync("http://foo.bar", sc).Result;
}
有没有办法直接修改它而不是删除并添加它?
答案 0 :(得分:2)
使用此StringContent
的重叠来设置内容类型
sc = new StringContent(content, Encoding.UTF8, "application/json");
在此之后,您不需要添加/删除标头值。
答案 1 :(得分:1)
如果你通过序列化一些数据手动构建json字符串,那么有更好的方法。您可以使用PostAsJsonAsync
扩展方法:
using (System.Net.Http.HttpClient client = new System.Net.Http.HttpClient())
{
var response = await client.PostAsJsonAsync("http://foo.bar", data);
}
它会自动执行以下操作