目次

curlコマンド

プログレスメータの表示を抑止する

-sS

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 <ファイル名>

<ファイル名>には標準出力を示す-を指定可能。