繁体   English   中英

将 xml 数据发送到 web 服务而不是使用 CDATA 的最佳方法是什么?

[英]What is the best way to send xml data to a web service rather than using CDATA?

我有一个 web 服务,它采用单个字符串参数。

在我的情况下,我需要发送一个字符串,它是一个 xml 文档,其中一个元素包含一个 xml 片段(我将使用它来创建一个文件)。

例如,我发送:

<people>
  <person>
     <name>J Smith</name>
     <value><![CDATA[<content>rest of xml document here</content>]]></value>
  </person>
</people>

我用.. 创建了一个 xml 文件。

我想知道是否有比使用 CDATA 更好的方法来做到这一点? CDATA 文件非常小(小于 20KB)。

京东

我建议对 XML 片段进行 Base64 编码。

无需使用 CDATA。 您可以按原样直接传递 xml 片段。

例如,参见http://msdn.microsoft.com/en-us/library/aa480498.aspx

更新:

史蒂夫指出你有一个字符串参数而不是 XmlElement 参数。 我不确定它是否仍然可以这样工作(尽管我觉得它可以:)。

除了 CDATA 和 Base64 之外的另一个选择是 Xml 编码,例如

var xml = new XmlDocument();
var node = xml.CreateElement("root");
node.InnerText = "<content>Anything</content>";

var xmlString = node.InnerXml; /// &lt;content&gt;Anything&lt;/content&gt;

使用 Mutipart/Form-Data 的标准 HTTP POST 怎么样? 使 url 或查询字符串的单个参数部分。

这是更“RESTful”的做事方式。

这只是一个标准的文件上传。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM