2012-09-17 35 views
1

我从终端的Mac OSX发送下面的curl命令:使用curl与REST API互动 - 错误:“内容不允许在序言”

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

我找回了回应:

执行时失败错误 - ADD_REQUEST - 序言中不允许使用内容。

这里是我的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> 

我下载记事本+ +,并检查了编码,这是UTF8无BOM。

我仍然得到同样的错误。任何人都可以看到我做错了什么?

更新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声明中“版本”后面的值必须是带引号的字符串。“

任何人有任何想法?

+0

我试着用“UTF”替换为“UTF”仍然得到相同的错误信息。 – brl8

+0

所以它看起来像错误可能是它没有找到XML文件。如果我传入伪造文件名,我会得到相同的错误。我试过/user/filename.xml(我在Mac上),但它仍然没有找到它......任何建议? – brl8

+0

我也试过这个在我的电脑上,显示了xml文件的完整路径...同样的错误。我错过了什么? – brl8

回答

2

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

它现在的工作。

相关问题