curlコマンド
プログレスメータの表示を抑止する
-sS
-s
でプログレスメータとエラーの抑止-S
でエラーの出力
7.67.0以降はエラーを抑止しない専用のオプションがある。RHEL9やDebian11では使える。RHEL8以前だと使えない。
--no-progress-meter
HTTPレスポンスヘッダを表示する
-i
HTTPメソッドを指定する
-X <METHOD>
PUTメソッドでExpectヘッダの送信を抑止する
-H "Expect:"
Content-Bodyの送信
ファイルの内容を送信。
-d @<ファイル名>
送信内容を文字列で指定。
-d <文字列>
標準入力から読みこんで送信。
-d @-
Content-Typeの設定
JSONでの例。
-H "Content-Type: application/json"
スクリプトなどからPOSTする場合の例
curl -X POST -H 'Content-Type: application/json' -d @- http://somewhere/somepath <<END { "foo1": "bar1", "foo2": "bar2" } END
認証
-u <ユーザ名:パスワード>
プロキシ経由で接続する
プロキシのユーザ名とパスワードを一緒に渡す場合はURLエンコードが必要。
-U <ユーザ名:パスワード>
でも指定可能。
-x <[protocol://][user:password@]proxyhost[:port]>
HTTPプロキシの場合はprotocolは省略可。
-x proxy.example.com:8080
SOCKS5プロキシの場合。
-x socks5://proxy.example.com:1080
SOCKS5プロキシで、名前解決をプロキシに任せる場合。
-x socks5h://proxy.example.com:1080
自己署名証明書を使用している安全ではないサーバにhttpsで接続する
curl: (60) Issuer certificate is invalid.
と表示されて接続できない場合の回避方法。
-k
ファイルをダウンロードする
リダイレクトの追随と、サーバと同じファイル名での保存。
-L -O
応答をファイルへ出力
-o <ファイル名>
<ファイル名>
には標準出力を示す-
を指定可能。
ヘッダをファイルへ出力
応答の内容とヘッダを分けて出力したい場合に使用できる。
-D
を使用する場合、-i
は不要。
-D <ファイル名>
<ファイル名>
には標準出力を示す-
を指定可能。