curl - 表单文件重定向

时间:2010-01-18 15:58:10

标签: file curl redirect form-parameter

这有效:

 curl  --url http://someurl.tld  --form "apikey=39485730"

这不是:

 curl  --url http://someurl.tld  --form "apikey=<keyfile"

错误: API密钥无效

cURL手册(http://curl.haxx.se/docs/manpage.html)明确说明

  

-F / - form(HTTP)这使curl模拟用户按下提交按钮的填写表单。 [...]要强制'content'部分为文件,请在文件名前加上@符号。要从文件中获取内容部分,请在文件名前加上符号&lt;前缀。 @和&lt;之间的区别然后,@使文件作为文件上传附加在帖子中,而&lt;创建一个文本字段,然后从文件中获取该文本字段的内容。


FWIW: 如果我使用--form“apikey = @ keyfile”我收到错误:“需要API密钥”。 这证实了@肯定是错的(我没问题)。 但是为什么<不起作用,怎么办呢?

看起来好像文件内容没有传递或错误。因此,我已经四倍确定,只有api键(此处:39485730),文件中没有其他内容。


如果重要的是我为什么要这样做:
我在脚本中需要这个curl-command,并且不想把API密钥放在那里。相反,它应该在运行此脚本的用户的HOME中,只能由他读取,而不是其他任何人。

提前感谢您的任何见解......: - )

1 个答案:

答案 0 :(得分:2)

我认为你可能在keyfile中有一个尾随换行符。您可以通过以下方式查看:

xxd keyfile

最后应该没有0a。如果有,您可以重新创建密钥文件而不使用如下所示的尾随换行符:

echo -n 39485730 > keyfile

然后使用新的keyfile再次尝试。