Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Read a mitmproxy dump file and generate a curl command
#!/usr/bin/env python
#
# Simple script showing how to read a mitmproxy dump file
#
### UPD: this feature is now avaiable in mitmproxy: https://github.com/mitmproxy/mitmproxy/pull/619
from libmproxy import flow
import json, sys
with open("mitmproxy_dump.txt", "rb") as logfile:
freader = flow.FlowReader(logfile)
try:
for f in freader.stream():
request = f.request
print(request)
curl = 'curl -X ' + request.method + ' -d \'' + request.content + '\' ' + ' '.join(['-H ' + '"' + header[0] + ': ' + header[1] + '"' for header in request.headers])
curl += " https://" + request.host + request.path
print(curl)
print("--")
except flow.FlowReadError as v:
print("Flow file corrupted. Stopped loading.")
@michaelschem

This comment has been minimized.

Copy link

@michaelschem michaelschem commented Jan 5, 2017

I'm trying to get this script installed and I am not sure what I am doing wrong. I get the following error.

Traceback (most recent call last):
File "./read_mitmproxy_dumpfile.py", line 8, in <module>
from libmproxy import flow
File "/usr/lib/python2.7/dist-packages/libmproxy/flow.py", line 15, in <module>
from netlib.http import CONTENT_MISSING, Headers, http1
ImportError: cannot import name CONTENT_MISSING

I have tried installing netlib with pip

pip install netlib

and by cloning from the git repo and installing

git clone https://github.com/cortesi/netlib.git
cd netlib
sudo python setup.py install

neither are working. is there something else I need to do to get this script to work?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment