curl コマンドで Cookie を送信するには
オプションを使う
curl -b name=value http://example.com
複数のCookie を送信するには
curl -b 'name=1&arg=value' http://example.com/
複数書くときに、- b を複数記述しても動作しない。
curl -b name=1 -b arg=value http://example.com/ # 上手くいかない
CookieはGET文字列と同じ
Cookie のヘッダも、POST(form-urlencoded)のボディも、GETのクエリパラメータも、本質的には URL エンコされた文字列なので、扱い方は同じですね。
別解:Cookie をヘッダにして送る
curl -H 'Cookie: name=var' http://example.com
ChromeやWebkitの「Devtools」でネットワークを開いてリクエストヘッダからCookieをコピペして使えるので、以外に便利な -H オプション
ヘッダの再現にはこちらがオススメ。
別解 cookie.jar を使う
Netscape 互換(古いな)のcookie.jar ファイル(要はini みたいな)をつかうと、Cookieを自動で管理してくれる でも余りつかわない
curl -c path_to_cookie_jar_file http://example.com
Cookieの保存と送信
別記事に書いたんですけど、ここでも紹介。
curl -c path_to_cookie_jar_file -b path_to_cookie_jar_file $URL
保存と利用でファイルを分ける事ができるので、同じファイル名を指定すればだいたい解決。
2023-05-23
誤字修正・-b を追記