2017-02-10 85 views
0

我很高興能夠從控制檯直接做東西! :)爲CURL請求的數據輸入提供本地文件作爲參數

今天我玩弄了關於詞形等的meaningcloud API,當我直接在URL中輸入文本作爲txt=here%20my%20text等參數時,它工作的很好。

然而,試圖從一個文件饋輸入時,使用doc=參數如所描述in their docs,我不斷收到以下響應:

{"status":{"code":"200","msg":"Missing required parameter(s) - [txt]", ... 

該文檔讀取本人可以使用docurltxt作爲參數來指定文本輸入的來源,但似乎我在這裏做錯了什麼。

我嘗試了一段時間以不同版本的絕對和相對路徑,但無法弄清楚如何讓它直接從文件中獲取輸入。

這裏有一個例子電話,我是做,也許有人可以點我到我的錯誤(在實際調用我有我的API密鑰了,而不是{my_key_here}!):

curl -K -XPOST "https://api.meaningcloud.com/parser-2.0?key={my_key_here}&of=json&lang=es&doc=Users/Martin/Documents/text.txt" >> output.json 

我嘗試了更一般答案here但剛剛得到相同的錯誤響應。我想知道這是否是我的一般錯誤,或者它是否特定於API。

感謝您的任何提示!

+1

的'-K'選項是完全錯誤的,雖然存在,因爲它會然後把'-XPOST'作爲文件名閱讀...你可能意味着小寫'-k'。 –

+0

哦!非常感謝。是的,我沒有檢查就複製了它!現在在這裏閱讀:https://curl.haxx.se/docs/manpage.html並且根本沒有必要。 –

+0

雖然它還沒有工作,所以那裏肯定還有其他問題。 –

回答

0

我把它和@Lucas Liu在this thread的回答一起工作!

curl -i -F [email protected] "https://etc." 

而且@Daniel Stenberg發明的輕推幫我也弄清楚我的初始誤差(從curl manual):

@filename

這將使從給定文件捲曲的負載數據(包括任何 換行符),對這些數據進行URL編碼並在POST中傳遞它。

我正在通過我的文件URL作爲字符串 - 通過不預先符號。因此,原始呼叫的工作版本(在API的suggested format)看起來像這樣:

curl -XPOST "https://api.meaningcloud.com/parser-2.0?key={my_api_key}&of=json&lang=es&[email protected]/Martin/Documents/text.txt" -o output.json 
+1

...和「-X POST」最好刪除 –

+0

好極了!它的工作原理沒有「-X POST」,再次感謝!我認爲這是因爲現在我傳遞一個文件,所以不需要使用POST來允許更長的字符串,這是正確的嗎? –

+0

不,這是因爲-F意味着做一個POST,並且當你以後想要添加'-L'或者類似的東西時,你堅持只會導致錯誤。 –