0

这有效:

 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 模拟用户按下提交按钮的填写表单。[...] 要强制“内容”部分成为文件,请在文件名前加上 @ 符号。要仅从文件中获取内容部分,请在文件名前加上符号 <。@ 和 < 之间的区别在于 @ 使文件作为文件上传附加在帖子中,而 < 生成文本字段并仅从文件中获取该文本字段的内容。


FWIW:如果我使用 --form "apikey=@keyfile" 我得到错误:“API key is required”。这证实了 @ 肯定是错误的(我同意)。但是为什么不起作用<,该怎么办呢?

看起来文件的内容要么没有传递,要么错误。因此,我已经四重确定,文件中只有 api 密钥(此处:39485730),没有其他内容。


如果我尝试这样做很重要:
我需要在脚本中使用这个 curl 命令,并且不想将 API 密钥放在那里。相反,它应该在运行此脚本的用户的 HOME 中,只有他可以读取,其他人不能读取。

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

4

1 回答 1

2

我认为您可能在keyfile. 您可以通过以下方式检查:

xxd keyfile

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

echo -n 39485730 > keyfile

然后用新的keyfile.

于 2010-01-18T22:10:38.020 回答