我是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/