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

为CURL请求的数据输入提供本地文件作为参数,curl,command-line,terminal,Curl,Command Line,Terminal,我是新来的,非常兴奋能直接从控制台做事情 今天我在玩Lemmatization等的函数,当我将文本作为参数直接输入URL时效果非常好,比如txt=here%20my%20text 但是,当尝试从文件中输入时,使用所述的doc=参数,我不断得到以下响应: {"status":{"code":"200","msg":"Missing required parameter(s) - [txt]", ... 文档读到我可以使用doc、url或txt作为参数来指定文本输入的来源,但似乎我在这里做错了什么

我是新来的,非常兴奋能直接从控制台做事情

今天我在玩Lemmatization等的函数,当我将文本作为参数直接输入URL时效果非常好,比如txt=here%20my%20text

但是,当尝试从文件中输入时,使用所述的doc=参数,我不断得到以下响应:

{"status":{"code":"200","msg":"Missing required parameter(s) - [txt]", ...
文档读到我可以使用doc、url或txt作为参数来指定文本输入的来源,但似乎我在这里做错了什么

我尝试过使用不同版本的绝对路径和相对路径,但不知道如何让它直接从文件中获取输入

这里是我正在进行的一个示例调用,也许有人可以指出我在实际调用中的错误,我的API密钥在那里,而不是{my_key_Here}!:

我尝试了更一般的答案,但得到了相同的错误响应。我想知道这是我的一般错误,还是API特有的错误


谢谢你的提示

我用@Lucas Liu的答案来解决这个问题

@Daniel Stenberg的轻推也帮助我从以下方面找出了我最初的错误:

@文件名

这将使curl从给定文件加载数据,包括 换行符、URL对数据进行编码并在帖子中传递

我将我的文件URL作为字符串传递,而不是在@符号前加前缀。因此,API中原始调用的工作版本如下所示:

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 

…而且-X的帖子最好删除-太棒了!无需-X POST即可使用,再次感谢!我假设这是因为现在我正在传递一个文件,所以不需要使用POST来允许更长的字符串,对吗?不,这是因为-F意味着做一个POST,而你坚持这样做只会导致错误,当你以后考虑添加-L或类似的东西时。尽管-K选项是完全错误的,因为它会将-XPOST作为一个文件名来读取。。。你的意思可能是小写-k.Oh!谢谢。是的,我没有检查就复制了这个!但它仍然不起作用,所以肯定还有其他问题。好吧,当然,你不能只是按照你自己的意愿去做。您已经为自己编写了一个答案,其中显示了一个可以正常工作的帖子,因此可能一个简单的GET不适用于该API。
curl  -i  -F doc=@text.txt "https://etc."
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