curlコマンドのきほんと使用例

環境

  • 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"

 

以上です。頻繁に使用するものではないですが、必要な時の索引として誰かの役に立てばと思います。

Linux学習におすすめの書籍

コメント

タイトルとURLをコピーしました