curlでcookie情報を取得し利用する

今日はcurlの簡単な使い方。
便利ですよね、curl。
MacでもLinuxでも、とりあえずターミナルからコマンド実行できるので、
テストにも調査にもすぐ使えます。

例えば、単純にターミナルから、

curl https://google.co.jp


で、htmlコンテンツが応答されます。

ヘッダー情報を表示したい場合は、

curl --dump-header - https://google.co.jp


ってしてあげれば、ヘッダー情報が確認できます。

オプションは山ほどありますよ。
curlオプション

続いて、POSTは、

curl 接続先URL -X POST -d "キー1=バリュー1&キー=バリュー2"


て、感じで、-d でデータ指定して、後ろに&で必要な分だけキーとバリューを指定してあげる。
もしくは、-d "キー1=バリュー1" -d "キー=バリュー2"といった感じで都度-dで指定してあげる。

json形式で送る場合、

curl -H "Content-type: application/json" -X POST -d '{"キー1":"バリュー1", "キー2": "バリュー2"}' 接続先URL


"Content-type: application/json"を明示的に指定して、データは=で繋ぐのではなく、jsonで指定します。

さらに、ログイン画面などを通過した先で何か確認したい時!
ログイン画面後だと、もちろんそのまま接続しても未ログインだから怒られますよね。
かと言って、curlで1度ログインしてから、もう1度curlでアクセスしようとしても、
セッションが切れてしまうので、やはり怒られますよね。

そんな時は、cookie情報をテキストファイルに保存しておいてそれを使うことで可能です。
こんな感じ。

curl -c cookie.txt -d "ユーザー=ユーザー名&パスワード=パスワード" 接続先URL/login


-c 指定で、cookie情報をcookie.txtに保存しました。

続いて、そのcookie.txtを利用して

curl -b cookie.txt 接続先URL/ログイン後画面


てやってあげると、ログイン後の応答内容を取得できます。
いやはや、便利ですね。
スクリプト書いてあげれば、コマンドだけで画面遷移などもできるので、
定期的なチェックだったり、わざわざ画面から操作しなくても、スクリプトでテストもできますね。

ということで、お疲れ様でしたー!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です