cURL
cURL は URL を使ってデータを転送するためのコマンドラインツールおよびライブラリです。このコマンドは、HTTP、HTTPS、FTP、SCP や SFTP などさまざまなプロトコルをサポートしています。また、スクリプトのように、ユーザーの操作なしで動作するように設計されています。
目次
インストール
使用方法
ダウンロード
cURL の一般的な使用例は、指定したファイルにリソースをダウンロードすることです。
$ curl -o file name URL
URL にファイル名が含まれている場合は、リソースをその名前のファイルに直接保存できます。
$ curl -O URL
同様に、-J
を使用すると、ファイルの名前を決めるためのヒントを HTTP サーバー (Content-Disposition
ヘッダー) から受け取ることができます。-O
と組み合わせると、HTTP サーバーが応答でファイル名のヒントを返さなかった場合は、curl は URL で指定されたファイル名を使用します。
また、出力オプションを省略して、リソースを標準出力に出力することもできます。
$ curl URL
HTTP POST
cURL を使用して HTTP POST リクエストを行うことができます。
$ curl -d 'request body' URL
リクエストの本文がコマンドラインに収まらない場合は、cURL はファイルからリクエストを読み込むことができます。
$ curl -d @file name URL
場合によっては、Content-Type
ヘッダーにカスタム値を指定する必要があるかもしれません(cURL のデフォルト値は application/x-www-form-urlencoded
)。これには -H
を使います。例えば、JSON body を利用して、POST リクエストを作成する場合は以下のようにします。
$ curl -d 'json body' -H 'Content-Type: application/json' URL
なお、curl には json で投稿データを書き込み、それらのヘッダーを自動的に変更するオプションもあります: --json
:
$ curl --json '{"key":"value"}' URL
ヒントとテクニック
リダイレクトを追跡する
リダイレクト (HTTP から HTTPS へのリダイレクトなど) を追跡するには:
$ curl -L URL
ダウンロードエラーを表示する
デフォルトでは、curl はエラーを無視します (たとえば、ファイルにダウンロードするとき、エラーが発生した場合、curl は通知せず、空のファイルが作成されます) そのため、--fail
を使用してエラーメッセージを表示させたい時:
$ curl --fail URL
圧縮
データを 圧縮 して転送する場合 (たとえば、帯域幅が CPU よりも制限されている状況では、curl はデータを圧縮してダウンロードし、ダウンロード後に圧縮を解除します):
$ curl --compressed URL
プログレスバー
curl には、ファイルをダウンロードするときに通常の ProgressBar を使用するオプションがあります (例:[##### ] 80%
)
$ curl '-#' URL
globing
また、curl で globing を使用することもできます。
$ curl "example.com/images/[1-9].png" $ curl "example.com/{first_page,second_page,third_page}"
参照
- Wikipedia:ja:cURL
- Everything curl - cURL の使用に関する広範なガイド
- curl(1)