强制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();
}
看起来你很努力:)这应该可以工作。
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"