Принуждение HttpClient к использованию Content-Type: text/xml

Это сводит меня с ума, я устанавливаю заголовок ContentType везде, где могу, и не могу заставить его прекратить отправку текста /plain.

Наблюдая за данными в Fiddler, запрос всегда запрашивает:

POST http:/domain.com HTTP/1.1

Content-Type: text/plain; кодировка = 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();
}

Ответы

Ответ 1

Похоже, вы пытались усердно:) Это должно сработать.

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

Ответ 2

Попробуйте настроить заголовки запросов по умолчанию:

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

Ответ 3

Используйте "application/xml" вместо "text/xml"