次のcurlコマンドを使用するbashスクリプトがあります。
curl -v -X GET https://example.com -H ~/Desktop/headers.txt -o ~/Desktop/file.txt
Bashスクリプトを実行すると、認証されていない401が表示されます。明らかにヘッダファイルを正しく読み込めないようです。私のヘッダーファイルは「承認:40bsafsdgds34234ホスティング...」と同じです。私のカールのバージョンは7.26です。
答え1
-H
このオプションは、デフォルトではファイルではなく引数(テキスト)からヘッダー情報を読み取ります。
を使用してファイルから読み取ることcurl 7.55
ができるからです。-H @file
以前のバージョンでは、次のような小さなスクリプトが必要です。
curl $(xargs -a headers.txt -I{} printf '-H "%s" ' "{}") URL
いくつかのリンク:
選ぶ:
以下を含む設定ファイルを作成します-H "..."
。
-H "Authorization: bearer token"
-H "Another header"
そして-K/--config <config file>
オプションを使用してください。
または、次の方法で元のファイルを自動的に使用しますsed
。
curl -K <(sed -r 's/^(.*)$/-H "\1"/' headers.txt) URL
答え2
多くの試行錯誤の後、私はこれが私に効果があることを知りました。
curl -v -X GET https://example.com -H "$(cat ~/Desktop/headers.txt)" -o ~/Desktop/file.txt