发布后,XML回车消失了

时间:2011-04-08 18:33:17

标签: xml http post curl carriage-return

我是linux用户。 我有一个XML文件调用config.xml。下面是文件的负责人:

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

我正试图发布它:

curl --user“USERNAME:PASSWORD”-X POST -d“@ config.xml”-H“Content-Type:text / xml; charset = 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测试),但它也无法解决问题。

    < / LI>

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

PS

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

谢谢

1 个答案:

答案 0 :(得分:3)

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

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