
APIテストもWebスクレイピングもおまかせ!curlコマンドをマスターして、Web開発をもっと自由に🚀
curlコマンドとは?基本を理解しよう
curlコマンドは、コマンドラインからWebサイトやAPIサーバーと通信するための強力なツールです。データの送受信、HTTPリクエストのカスタマイズなど、様々な用途に利用できます。開発者にとって必須の知識と言えるでしょう。
Web APIの動作確認や、スクリプトからのWebアクセス自動化など、幅広い場面で活躍します。
この記事では、curlコマンドの基本的な使い方から、応用的なテクニックまでを、具体的な例を交えながら解説します。
curlコマンドの基本的な使い方
最も基本的な使い方は、URLを指定してWebサイトにアクセスすることです。
curl https://www.example.com
これにより、https://www.example.com
のWebサイトのHTMLソースコードがターミナルに表示されます。
-v
オプションを使うと、curlコマンドの実行内容の詳細(リクエストヘッダー、レスポンスヘッダーなど)を確認できます。デバッグに役立ちます。
curl -v https://www.example.com
Webサイトからファイルをダウンロードするには、-O
オプションを使用します。これにより、URLのファイル名でローカルに保存されます。
curl -O https://www.example.com/image.jpg
ファイル名を指定して保存したい場合は、-o
オプションを使用します。
curl -o myimage.jpg https://www.example.com/image.jpg
APIへのアクセス:GETリクエスト
curlコマンドは、APIへのアクセスにも非常に役立ちます。GETリクエストを送信するには、APIのエンドポイントURLを指定するだけです。
curl https://api.example.com/users
APIによっては、認証が必要な場合があります。その場合は、-u
オプションでユーザー名とパスワードを指定します。
curl -u username:password https://api.example.com/users
または、-H
オプションを使って、Authorizationヘッダーを送信することもできます。
curl -H "Authorization: Bearer YOUR_API_KEY" https://api.example.com/users
APIからのレスポンスは通常JSON形式なので、jq
コマンドなどと組み合わせて、必要なデータを抽出すると便利です。
curl https://api.example.com/users | jq '.[].name'
上記の例では、APIから返されたJSONデータから、name
フィールドの値のみを抽出しています。
APIへのアクセス:POSTリクエスト
POSTリクエストを送信するには、-X POST
オプションを使用します。また、-d
オプションで送信するデータを指定します。
curl -X POST -H "Content-Type: application/json" -d '{"name": "John Doe", "email": "john.doe@example.com"}' https://api.example.com/users
上記の例では、JSON形式のデータを送信しています。-H
オプションでContent-Type
ヘッダーを指定することで、サーバーにデータの形式を伝えます。
データをファイルから読み込むことも可能です。@
記号を使ってファイル名を指定します。
curl -X POST -H "Content-Type: application/json" -d @data.json https://api.example.com/users
curlの応用:その他のオプション
curlコマンドには、他にも様々なオプションがあります。
-A
オプションでUser-Agentヘッダーを指定できます。これにより、Webサイトに対して、特定のブラウザやクローラーを装うことができます。
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" https://www.example.com
--cookie
オプションでCookieを送信できます。ログインが必要なWebサイトにアクセスする場合などに使用します。
curl --cookie "sessionid=YOUR_SESSION_ID" https://www.example.com/profile
--proxy
オプションでプロキシサーバーを指定できます。
curl --proxy http://proxy.example.com:8080 https://www.example.com
参考リンク
まとめ
curlコマンドは、Web開発において非常に強力なツールです。この記事では、基本的な使い方から、APIへのアクセス、応用的なオプションまでを解説しました。curlコマンドを使いこなして、Web開発を効率化しましょう。