[フロントエンド] Charlesでcurlの通信もキャプチャする方法
こんにちは、@yoheiMuneです。
フロントエンドの通信系のデバッグにCharlesが便利なのですが、curlコマンドなどの通信もCharlesで確認することができます。今日はその方法をブログに書きたいと思います。
curlでプロキシを設定するには
最後になりますが本ブログでは、フロントエンド、Swift、PHP、Node.js、Python、Linux、Java、インフラ、Go言語、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
フロントエンドの通信系のデバッグにCharlesが便利なのですが、curlコマンドなどの通信もCharlesで確認することができます。今日はその方法をブログに書きたいと思います。
目次
何が問題か
Charlesでは、ブラウザの通信内容は確認できますが、curlなどのプログラムの通信内容はキャプチャすることができません。それを見れるようにしたい、というのがこのブログの内容です。curlの通信内容をCharlesで確認する
curlの通信内容をCharlesで確認するために、curlでプロキシのオプションを利用します。Charlesはローカルプロキシとして稼働していて、port=8888
で起動しています。Charlesをプロキシとしてcurlに設定することで、curlの通信内容も確認できるようになります。curlでプロキシを設定するには
-x
オプションを使います。# -xオプションでプロキシを設定する $ curl -x localhost:8888 https://www.yoheim.netこれでキャプチャをすることができるようになりました。
サーバーサイドのプログラムでも!
Node.JSやPHPなどのサーバーサイドのプログラムでも、curlと同様の要領でプロキシを設定すれば、Charlesで通信内容を見ることが出来ます。例えば以下は、Node.JSのrequest-promiseというモジュールで通信を行う場合に、proxyを設定した例です。const options = { method : 'GET', url : 'https://www.yoheim.net', proxy : 'http://localhost:8888' // <- proxy設定! }; try { const res = await rp(options); return res; } catch (err) { console.log('なんかエラーだ!', err) }このようにプロキシを設定してデバッグすると、デバッグ時間が短くなって素敵です。
最後に
Charlesはここ4〜5年ほど愛用しています。デモ版以降はライセンス料も数十ドル必要ですが、払う価値があるツールだと思います。ネットワーク系のチェックやデバッグが簡単にできて、非常に高速に開発できます。最後になりますが本ブログでは、フロントエンド、Swift、PHP、Node.js、Python、Linux、Java、インフラ、Go言語、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!