mitmproxyを使ってポート転送を設定してアプリとローカルAPIサーバの間のAPI通信を検証する方法

ローカルで実行しているWEBアプリとローカルで実行しているAPIサーバとの間の通信を検証するためにmitimproxyを使ったのでやり方をまとめます。

mitmproxyはオープンソースHTTPSプロキシで Windows インストーラまたはMicrosoft Storeからダウンロードできます。

mitmproxy.org

下記の図のようにWEBアプリからAPIサーバ(localhost:7071)への通信が行われています。

この通信をmitmproxyで補足できるように、下記の図のようにWEBアプリの通信先をmitmproxy(localhost:8081)に変更して、mitmproxyでその通信をAPIサーバ(localhost:7071)に転送するように設定しました。

そのためにはpythonスクリプトが必要ですが、これはChatGPT(GPT-4)に作成してもらいました。 そのスクリプトがこちらです。

from mitmproxy import http
def request(flow: http.HTTPFlow) -> None:
# Only redirect requests to localhost:8081
    if flow.request.pretty_host == "localhost" and flow.request.port == 8081:
        flow.request.host = "localhost"
        flow.request.port = 7071

このスクリプトをredirect.pyと名前を付けて保存します。

ターミナルを開いて下記のコマンドを実行することで、mitmproxyがポート8081で起動して、受け取った通信をポート7071に転送してくれるようになります。

mitmweb -p 8081 -s .\redirect.py

また同時にWebインターフェースが起動するので、そちらで通信の内容を確認することができます。