XML 回车符在发布后消失了

标签 xml http post curl carriage-return

我是Linux用户。 我有一个名为 config.xml 的 XML 文件。下面是文件的头部:

<?xml version='1.0' encoding='UTF-8'?>
<project>
  <actions/>
  <description></description>
  <logRotator>
    <daysToKeep>-1</daysToKeep>
    <numToKeep>10</numToKeep>
...

我正在尝试使用以下方式发布它:

curl --user“用户名:密码”-X POST -d“@config.xml”-H“内容类型:text/xml;字符集=utf-8”http://example.com

config.xml 被发布,但是内容出来时没有回车符。如:

<?xml version="1.0" encoding="UTF-8"?><project>  <actions/>  <description/>  <logRotator>    <daysToKeep>-1</daysToKeep>    <numToKeep>10</numToKeep> ...

到目前为止已完成的测试:

  • 我实际上运行了“od -tc config.xml”,原始文件包含“\r”字符,但发布的 xml 文件不包含它。

  • 我尝试使用内容类型“application/xml”和“plain/text”发送它,但仍然是相同的方式。 (我想也许回车符会被保留为二进制或ascii类型)

  • 我尝试运行 unix2dos 来将“\n”添加到它所做的行的末尾(使用 od -tc 进行测试),但它也无法解决问题。

请告诉我是否应该做其他事情?

ps

如果有帮助,这与 Hudson 构建服务器和为已存在的任务发布 config.xml 文件有关。

谢谢

最佳答案

不要使用curl的-d(或--data)选项,而是使用保留文件的选项:

   --data-binary <data>
          (HTTP) This posts data exactly as specified with no extra pro‐
          cessing whatsoever.

关于XML 回车符在发布后消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5599353/

相关文章:

xml - 在 XML 中添加多个元素

php - SimpleXML 和 print_r() - 为什么这是空的?

支持分块编码的 Python HTTP 服务器?

java - 如何从 http 或 https 请求中获取带有端口的主机名

post - 使用cmake完成后如何打印消息?

xml - 为什么 XML 字符约束是不对称的?

php - 在 PHP 中使用命名空间访问 XML 节点的属性

php - 从 iOS 使用 POST 将数组传递给 PHP

ajax - 浏览器不能只使用之前 ajax 调用的缓存吗?

javascript - PHP - 提交缺少名称属性的 HTML 表单