C# 强制HttpClient使用内容类型:text/xml

C# 强制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");

这让我抓狂,我在任何地方设置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");
        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已经改变了很多