Skip to content

Instantly share code, notes, and snippets.

@jhult
Created March 2, 2026 22:50
Show Gist options
  • Select an option

  • Save jhult/757b4378a35d0a0794b3f68327a2991c to your computer and use it in GitHub Desktop.

Select an option

Save jhult/757b4378a35d0a0794b3f68327a2991c to your computer and use it in GitHub Desktop.
Dump a binary mitmproxy capture to plain text
from mitmproxy import http
from mitmproxy.utils import strutils
def response(flow: http.HTTPFlow) -> None:
with open("full_traffic.txt", "a") as f:
# Write request
f.write("=== Request ===\n")
f.write(f"{flow.request.method} {flow.request.pretty_url}\n")
for k, v in flow.request.headers.items():
f.write(f"{k}: {v}\n")
if flow.request.content:
f.write("\n")
try:
body = flow.request.get_text(strict=False)
f.write(body)
except Exception as e:
f.write(f"<binary or undecodable data: {e}>\n")
# Write response
f.write("\n=== Response ===\n")
if flow.response:
f.write(f"Status: {flow.response.status_code}\n")
for k, v in flow.response.headers.items():
f.write(f"{k}: {v}\n")
if flow.response.content:
f.write("\n")
try:
body = flow.response.get_text(strict=False)
f.write(body)
except Exception as e:
f.write(f"<binary or undecodable data: {e}>\n")
f.write("\n" + "-" * 80 + "\n")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment