当前位置: 首页 > 知识库问答 >
问题:

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

陶锋
2023-03-14

这让我抓狂,我在任何地方设置ContentType标题,似乎都不能让它停止发送文本/纯文本。

查看Fiddler中的数据时,请求始终在请求:

POST超文本传输协议:/domain.comHTTP/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();
}

共有3个答案

彭梓
2023-03-14

使用"应用程序/xml"而不是"文本/xml"

郎雅昶
2023-03-14

尝试设置默认请求标题:

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));
姬泰
2023-03-14

看起来你努力了:)这应该行得通。

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();
}
 类似资料:
  • 我的问题是关于应该在Android中使用HttpURLConnection编写的代码来获得响应? 请求和2个答复如下:

  • 问题内容: 我希望强制 Apache Commons HTTP-Client (版本 3.1 )将 TLS 1.2 用作HTTPS 的 唯一 协议。 这是由于服务器应该升级到TLS 1.2,并且不再接受任何较旧的协议(导致返回“连接重置”)。 对于进一步的上下文(可能无关紧要),HTTP客户端与Axis2一起使用来创建SOAP;下面是用于设置HttpClient的一些代码: 非常感谢您的帮助! 问

  • 我希望强制Apache Commons HTTP客户端(3.1版)使用TLS 1.2作为HTTPS的唯一协议。 这是因为服务器应该升级到TLS 1.2,不再接受任何旧协议(导致返回“连接重置”)。 对于进一步的上下文,可能不相关,HTTP-Client与Axis2一起用于制作SOAP;下面是用于设置HttpClient的一些代码: 非常感谢你的帮助!

  • 问题内容: 我们正在与第三方进行集成,该第三方发送的XML的Content-Type标头为text / html。我们正计划使用Spring的RestTemplate将其映射到我们从xsds生成的类,但是RestTemplate无法找到合适的转换器用于内容。第三方拒绝修复内容类型,因为它可能破坏其他伙伴的集成。 Spring的RestTemplate是否有办法强制其使用特定的转换器?我们基本上只是

  • 我们正在与第三方集成,该第三方以text/html的形式发送带有content-type标题的xml。我们计划使用Spring的RestTemplate将其映射到我们从xsds生成的类,但是RestTemplate未能为内容找到合适的转换器。第三方拒绝修复内容类型,因为这可能会破坏其他合作伙伴的集成。 Spring的RestTemplate有办法强制它使用特定的转换器吗?我们基本上只是在做以下几点

  • 我看到这篇文章给出了使用WebClient将文件上传到ftp的简单想法。这很简单,但如何强制它使用SSL?