提供本地文件作为CURL请求的数据输入参数

时间:2017-02-10 07:12:31

标签: curl command-line terminal

我很高兴直接从控制台做东西! :)

今天我正在使用meaningcloud API进行词形还原等等。当我将文本作为txt=here%20my%20text之类的参数直接输入到网址时,效果很好。

但是,在尝试使用in their docs所述的doc=参数从文件中提供输入时,我会不断收到以下回复:

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

文档宣读我可以使用docurltxt作为参数来指定文本输入的来源,但似乎我在这里做错了。< / p>

我尝试了一段时间使用不同版本的绝对和相对路径,但无法弄清楚如何让它直接从文件中获取输入。

以下是我正在制作的一个示例电话,也许有人可以指出我的错误(在真实电话中,我有我的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 个答案:

答案 0 :(得分:0)

我得到了@Lucas Liu在this thread的回答!

curl  -i  -F doc=@text.txt "https://etc."

@Daniel Stenberg的推动帮助我找出了我的初始错误(来自curl manual):

  

@filename

     

这将使curl加载来自给定文件的数据(包括任何文件)   换行符),对数据进行URL编码并在POST中传递。

我将文件网址作为字符串传递 - 而不是在@符号前面添加。因此,原始调用的工作版本(在API&#39; s suggested format中)看起来像这样:

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