アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

mitmproxyで通信を書き換える

アプリをテストする際にテストサーバーが用意されていないと通信を書き換えるなどしなければなりません。 そのような時にmitmproxyを使います。

mitmproxyの利点

Pythonスクリプトを書くことができます。GUIとか独自の形式とかではなくプログラムを書くことができるのが利点です。

インストール

https://mitmproxy.org/

path

自分はLinux版をHPからダウンロードして、WSLで使用しました。

TSL

http://mitm.it
ここで証明証を入れます。立ち上げた後にアクセスしてください。

Pythonスクリプト

pipでmitmproxyを入れておきましょう。

起動方法は以下のようになります。

mitmweb -p [Proxyのポート番号] --web-por [WebUIのポート番号] -s [Pytonファイル]

コード例

from mitmproxy.http import HTTPFlow

def response(flow):
    # type:(HTTPFlow) -> None
    print("======response======")
    path = flow.request.path
    query = flow.request.query


def request(flow):
    # type:(HTTPFlow) -> None
    print("======request======")

ここでtime.sleep()などをして通信を遅延させることが可能です。
pythonスクリプトを書き換えるとその場でファイルがロードされます。やっぱり動的型付け言語はこういう所で使うべきものなんだよと再認識しました。