使用curl与REST API交互 - 错误:“prolog中不允许内容”

时间:2012-09-17 20:19:14

标签: rest curl

我在Mac OSX中从终端发送以下curl命令:

curl -d "OPERATION_NAME=ADD_REQUEST&TECHNICIAN_KEY=1AD….4&INPUT_DATA=TestData.xml" http://xxx.xx.xx.xx/sdpapi/request/ 

我回复了回复:

执行时

FailedError - ADD_REQUEST - prolog中不允许使用内容。

这是我的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<Operation>
<Details>
<requester>Me</requester>
<subject>Test</subject>
<description>Testing curl input</description>
</Details>
</Operation>

我已经检查过,我的xml文件确实是一个UTF-8文件。我可以从谷歌搜索中看出这很可能与我的编码有关,但是,我找不到如何修复它。
我也尝试在我的电脑上将xml文件保存为ANSI,xml文件如下所示:

<?xml version="1.0"?>
<Operation>
<Details>
<requester>Me</requester>
<subject>Test</subject>
<description>Testing curl input</description>
</Details>
</Operation>

我下载了Notepad ++并检查了编码,即没有BOM的UTF8。

我仍然遇到同样的错误。谁能看到我做错了什么?

更新9/19添加:
除了我在下面的评论中尝试过的所有内容之外,我还试过这个:

curl -d "OPERATION_NAME=ADD_REQUEST&TECHNICIAN_KEY=xxxxxxxxxxxxxxxxx&INPUT_DATA=<?xml version="1.0" encoding="utf-8"?><Operation><Details><requester>Me</requester><subject>Test</subject><description>Testing curl input</description></Details></Operation>" http://xxx.xx.xx.xx/sdpapi/request/ 

我现在得到的错误是:“执行时出错 - ADD_REQUEST - XML声明中”version“后面的值必须是带引号的字符串。”

有人有任何想法吗?

1 个答案:

答案 0 :(得分:2)

我将<?xml version="1.0" encoding="utf-8"?>替换为<?xml version=%221.0%22 encoding=%22utf-8%22?>

现在正在运作。