これは機能します:
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 キーが必要です」というエラーが表示されます。これにより、@ が間違いなく間違っていることが確認されます (これは問題ありません)。しかし、なぜうまくいか<
ないのでしょうか。
ファイルの内容が伝えられていないか、間違っているように見えます。したがって、ファイルには API キー (ここでは 39485730) のみが含まれ、他には何も含まれていないことを 4 重に確認しました。
なぜ私がこれをやろうとしているのかが重要な場合:
スクリプトでこのcurlコマンドが必要であり、そこにAPIキーを入れたくありません. 代わりに、このスクリプトを実行するユーザーの HOME にある必要があり、そのユーザーのみが読み取ることができ、他のユーザーは読み取ることができません。
事前に洞察をありがとう... :-)