はじめに
インターネット上のデータを簡単に取得したり送信したりするために、‘curl’コマンドは非常に便利です。
特にプログラミングや解析をしている方にとっては、コマンドラインでウェブリクエストを扱う際の必須ツールとなります。
今回は私も業務で実際に使ったcurlのコマンドとそのオプションについて、説明していこうと思います。
curlコマンドの基本
まず、curlコマンドの基本的な使い方を押さえておきます。
コマンドは以下の様に入力します。
curl [URL]
これで、指定したURLからデータを取得して、ターミナルに表示してくれます。
例えば、’curl http://example.com‘と入力すると、example.comのHTMLコードが表示されるといったイメージです。
よく使うオプションの紹介
ここでは、’curl’コマンドでも特に使う頻度が高い10のオプションを紹介します。
それぞれのオプションがどのように役立つか見ていきます。
1. -O(大文字)
‘-O’オプションを使うと、指定したURLからファイルをダウンロードし、元のファイル名で保存します。
下のようなコマンドを入力すると、file.txtが現在のディレクトリに保存されます。
curl -O http://example.com/file.tx
2. -o(小文字)
‘-o’オプションはダウンロードしたファイルの名前を指定するために使います。
下のようなコマンドの場合、file.txtの内容がmyfile.txtという名前で保存されます。
curl -o myfile.txt http://example.com/file.txt
3. -I
‘-I’オプションを使うと、指定したURLのヘッダー情報だけを取得することができます。
サーバーのレスポンスヘッダーを確認したいときに便利です。
curl -I http://example.com
4. -X
‘-X’オプションを使用すると、HTTPリクエストメソッドを指定できます。
デフォルトではGETリクエストが送信されますが、POST, PUT, DELETEなども指定できます。
下のようなコマンドの場合、POSTリクエストが送信されます。
curl -X POST http://example.com
5. -d
‘-d’オプションは、POSTリクエストを送信する際にデータを指定します。 下のようなコマンドだと、name=John, age=30というデータがPOSTリクエストとして送信されます。
curl -d "name=John&age=30" -X POST http://example.com
6. -u
‘-u’オプションはユーザー名とパスワードを指定してHTTP認証を行うことができます。
下のようなコマンドで指定した認証情報でアクセスが試みられます。
curl -u username:password http://example.com
7. -L
‘-L’オプションは、リダイレクトを自動的に追跡するために使われます。
URLがリダイレクトされると、自動的に新しいURLに従います。
例えば、下記のようなコマンドだとするとリダイレクトが発生しても最終的なページが取得されます。
curl -L http://example.com
8. -H
‘-H’コマンドを使用すると、リクエストにカスタムヘッダーを追加することができます。
下のコマンドでは、サーバーにJSON形式のレスポンスを要求しています。
curl -H "Accept: application/json" http://example.com
9. -s
‘-s’オプションは、’curl’の進捗表示を抑制するために使います。
コマンドの実行中に進捗状況やエラーメッセージが表示されないため、出力結果だけに集中したいときに便利です。
下のコマンドを入力することで、進捗表示なしで結果だけが表示されます。
10.–data-urlencode
‘–data-urlencode’オプションは、URLエンコードされたデータをPOSTリクエストとして送信する際に使用します。
下記のコマンドでは、‘query=search+term’がURLエンコードされて送信されます。
curl --data-urlencode "query=search term" http://example.com
まとめ
‘curl’コマンドは、コマンドラインから様々なウェブ操作を行うための強力なツールです。
私も基本的な部分まだ扱えておらず、オプション等を活かしきれていないので、一つずつ覚えていきたいです。
以上curlコマンドのお話でした。