Skip to content
This repository was archived by the owner on May 15, 2024. It is now read-only.

Commit 2370e17

Browse files
author
Will Dormann
committed
Update example rewrite script to work with newer mitmproxy versions.
1 parent dbfbfd3 commit 2370e17

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

rewrite.py

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,33 @@
4848
# calcbytes = f.read()
4949

5050
def response(flow: http.HTTPFlow) -> None:
51-
flow.response.replace(resp_before, resp_after)
51+
try:
52+
# Older mitmproxy version
53+
flow.response.replace(resp_before, resp_after)
54+
except AttributeError:
55+
# Newer mitmproxy version
56+
# https://stackoverflow.com/questions/64111152/issue-converting-older-mitmproxy-scripts-to-work-on-5-2-error-on-replace-and-c
57+
if flow.response.content:
58+
try:
59+
# Try binary replacement first
60+
flow.response.content = flow.response.content.replace(resp_before, resp_after)
61+
except TypeError:
62+
# Then fall back to text replacement
63+
flow.response.text = flow.response.text.replace(resp_before, resp_after)
5264

5365
def request(flow: http.HTTPFlow) -> None:
54-
flow.request.replace(req_before, req_after)
66+
try:
67+
# Older mitmproxy version
68+
flow.request.replace(req_before, req_after)
69+
except AttributeError:
70+
# Newer mitmproxy version
71+
if flow.request.content:
72+
try:
73+
# Try binary replacement first
74+
flow.request.content = flow.request.content.replace(req_before, req_after)
75+
except TypeError:
76+
# Then fall back to text replacement
77+
flow.request.text = flow.request.text.replace(req_before, req_after)
5578
#flow.request.headers['User-Agent'] = 'Custom User-Agent'
5679

5780
## Below is an example that will answer any question for a URI that ends in '.exe'

0 commit comments

Comments
 (0)