aboutsummaryrefslogtreecommitdiffstats
path: root/examples/modify_response_body.py
blob: 23ad01511137fbebe0f755c4a69517796d2c0aac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Usage: mitmdump -s "modify_response_body.py mitmproxy bananas"
# (this script works best with --anticache)
import sys

from mitmproxy.models import decoded


state = {}


def start():
    if len(sys.argv) != 3:
        raise ValueError('Usage: -s "modify_response_body.py old new"')
    # You may want to use Python's argparse for more sophisticated argument
    # parsing.
    state["old"], state["new"] = sys.argv[1].encode(), sys.argv[2].encode()


def response(flow):
    with decoded(flow.response):  # automatically decode gzipped responses.
        flow.response.content = flow.response.content.replace(
            state["old"],
            state["new"]
        )