らっちゃいブログ

日々の学びと気づきを発信するブログ

Chromeで送信したリクエストをターミナル上でそのまま実行可能なcURL形式で取得する方法

スポンサーリンク

おまえは何を言っているんだ状態です。興奮しすぎてタイトルに情報を詰め込み過ぎてしまいました。反省します。

何がしたかったかというと、数分に一度しかリクエストされないXHRリクエストを curl で何度も叩きたかったのです。正直、対象のリクエストを curl でエミュレートするのはいろいろヘッダー付けたりで面倒ですし、デバッグ目的だったりするのでなるべく同じ条件で実行したいという願いもあります。

そこで、Chrome の DevTools の出番です!百聞は一見に如かず。こちらを見てください。

f:id:racchai:20160513160218p:plain

画像は本ブログのabout画面です。この画面を取得するリクエストをChromeから取得してみます。

DevTools を開き、[ネットワーク] タブを選択します。一番上に about 画面へのリクエストが表示されているので、右クリックしてみると・・・

f:id:racchai:20160513161125p:plain

いろいろコピーできそうなメニューが表示されました。ここで「Copy as cURL」を選択します。

Chrome での操作は以上です。そのままターミナルに移動してペーストしてみましょう。

# Cookie ヘッダー値だけ手動で潰しました
$ curl 'http://racchai.hatenablog.com/about' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: ja,en-US;q=0.8,en;q=0.6' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Cache-Control: max-age=0' -H 'Cookie: *****' -H 'Connection: keep-alive' --compressed

リクエスト情報が全部コピーされている!やったー。Cookie ヘッダーもコピーされるので、認証が必要な画面やAPIでも再現することが可能です。

全く同じリクエストを何度も送信したい方は幸せになれると思いますので、ぜひお試しください。