使用text / plain作为XML over HTTP的内容类型有哪些潜在问题?

我正在开发一个项目,其中第三方运行.NET环境,提供通过HTTP发送和接收XML的REST样式服务.我的项目实际上完全是在一台单独的机器上使用Java.

我构建了系统的整个Java部分,假设POSTing或PUTing XML文档的内容类型标题等于“application / xml”就可以了(因为它是XML规范和相关RFC的一部分!).

无论如何,现在.NET团队说它必须是text / plain,否则他们的服务器将拒绝该请求,他们似乎无法或不知道如何更改它.

那么,使用普通/文本作为内容类型通过HTTP发送XML会有什么影响?有任何微妙的“陷阱”,还是没什么大不了的?

谢谢

解决方法:

除非指定了charset参数,否则text / plain的charset是us-ascii. mime类型中定义的charset优先于xml文档中定义的charset,因此如果xml文档不是us-ascii,则正确的客户端会错误地解析xml.

4.1.2 of RFC 2046声明对于text / plain,

The default character set, which must be assumed in the absence of
a charset parameter, is US-ASCII.

即使使用text / xml,认字符集也是us-ascii,来自3.1 of RFC 3023部分,

Conformant with [RFC2046], if a text/xml entity is received with the
charset parameter omitted, MIME processors and XML processors MUST use
the default charset value of “us-ascii”

如果你使用指定了正确字符集的text / plain,现在指定charset两次,所以最好使用没有与之关联的认字符集的application / xml,并让xml文档声明charset .

这个here有一篇有趣的帖子.

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念