環境
- windows10
- gitbash 2.32.0.1
Curlコマンドとは
cURLとは、主にUNIX系OSでよく利用されるコマンドおよびプログラムの一つで、様々なプロトコル(通信手順)を用いてURLで示されるネットワーク上の場所との間でデータの送受信を行うもの。オープンソースソフトウェアとして公開されている。
curlコマンドはHTTPSやFTP, Telnet, SMTP, IMAP, POP3など様々な通信プロトコルを駆使して、コマンドライン上からデータ転送を行うことができるコマンドです。
具体例
手始めに
以下のコマンドで自分のグローバルIPを確認できる
※こういったサイトなどで確認するのと同義
curl ipinfo.io
GET
シンプルにGETする
curl https://maasaablog.com/
GETした内容をhtmlに出力する
curl -o <出力パス> <url>
curl -o /c/Users/username/Desktop/hoge.html https://maasaablog.com/
Basic認証がかかっている場合
curl -u <id>:<password> https://maasaablog.com/
APIキーの指定
各APIによって指定方法はことなる
slack(https://api.slack.com/web)なら以下のような感じ
curl -H 'Authorization: Bearer XXXXXXXXXXXXXXXXX' \ -H 'Content-type: application/json' //
レスポンスヘッダのみ取得したい
curl -I https://maasaablog.com
HTTP/2 200
server: nginx
date: Wed, 03 Nov 2021 02:51:50 GMT
content-type: text/html; charset=UTF-8
//
POST
シンプルにPOST
keyとvalueを指定すると、inputタグの内容を送信するのと同義
-dで複数指定可能(クエリパラメーターの&扱い)
curl -d "category=pasta" https://maasaablog.com/
curl -d "category=pasta" -d "hoge=1" https://maasaablog.com/
JSONをPOST
-H(ヘッダーオプション)をjson形式であることを明示する必要がある
curl -H "content-type: application/json" \ -d '{"category": "pasta"}' https://maasaablog.com/
postするjsonファイルを指定する
@でファイルを指定できる
curl -H "content-type: application/json" \ -d @hoge.json https://maasaablog.com/
ブラウザのリクエストをcURLで取得
上記では、curlコマンドを一から書いていますが、Google Chrome)のdevtoolで
ブラウザが送信したリクエストをcURLのコマンドライン形式でコピーできます。これにより、シェルスクリプトとcURLを使って、リクエストの自動化が簡単に実現できます。
Networkタブ -> 右クリックCopy as cURL
ベンチマーク
curl -wでHTTPリクエストのレスポンスタイムをとることが可能です
time_totalの部分はいろんなパラメーターが指定できる
curl https://maasaablog.com -w"%{time_total}\n"
// 0.613465
なお、-s でダウンロード進捗の表示を消し、ダウンロードした内容は不要なので -oでdev/nullに破棄することが可能
curl https://maasaablog.com -s -o /dev/null \ -w "%{time_total}\n"
以上です。頻繁に使用するものではないですが、必要な時の索引として誰かの役に立てばと思います。
コメント