强制HttpClient使用Content-Type: text/xml

本文关键字:text xml Content-Type HttpClient 使用 强制 | 更新日期: 2023-09-27 18:17:14

这让我发疯了,我在任何地方都设置了ContentType头,我似乎不能让它停止发送文本/明文。

观察Fiddler中的数据,请求总是在请求:

POST:/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();
}

强制HttpClient使用Content-Type: 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();
}

尝试设置默认请求头:

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));

用"application/xml"代替"text/xml"