2012-09-17 45 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?>

它現在的工作。

相關問題