C# 强制HttpClient使用内容类型:text/xml
这让我抓狂,我在任何地方设置ContentType标题,似乎都不能让它停止发送文本/纯文本 查看Fiddler中的数据时,请求始终在请求: POST http:/domain.com http/1.1 内容类型:文本/纯文本;字符集=utf-8C# 强制HttpClient使用内容类型:text/xml,c#,httpclient,C#,Httpclient,这让我抓狂,我在任何地方设置ContentType标题,似乎都不能让它停止发送文本/纯文本 查看Fiddler中的数据时,请求始终在请求: POST http:/domain.com http/1.1 内容类型:文本/纯文本;字符集=utf-8 using (var httpClient = new HttpClient()) { var request = new HttpRequestMessage(HttpMethod.Post, "http://domain.com");
using (var httpClient = new HttpClient())
{
var request = new HttpRequestMessage(HttpMethod.Post, "http://domain.com");
request.Content = new StringContent(Serialize(obj), Encoding.UTF8, "text/xml");
request.Content.Headers.Clear();
request.Content.Headers.ContentType = new MediaTypeHeaderValue("text/xml");
request.Headers.Clear();
request.Headers.Add("Content-Type","text/xml");
var response = await httpClient.SendAsync(request);
return await response.Content.ReadAsStringAsync();
}
尝试设置默认请求标题:
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));
看起来你努力了:)这应该行得通
using (var httpClient = new HttpClient())
{
var request = new HttpRequestMessage(HttpMethod.Post, "http://domain.com");
request.Content = new StringContent(Serialize(obj), Encoding.UTF8, "text/xml");
var response = await httpClient.SendAsync(request);
return await response.Content.ReadAsStringAsync();
}
使用“application/xml”而不是“text/xml”否,请尝试。但接受标题也没用。我正在尝试设置内容类型headerWorked完美地为我。它应该,但它不是。我从简单的尝试开始。你检查了Fiddler的输出了吗?是的,我检查了。你使用什么平台?我尝试了使用.NET Framework的ConsoleApplication(在桌面上),但要小心HttpClient的“使用”语句。参见“”文章。这个答案不起作用,不知道为什么它是第一个答案?这是一个7年前的答案。我想从那以后.net已经改变了很多