aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShadab Zafar <dufferzafar0@gmail.com>2016-02-21 20:44:03 +0530
committerShadab Zafar <dufferzafar0@gmail.com>2016-03-01 17:39:32 +0530
commitac252064208b65381b2c2a68e373538c3b2130ce (patch)
tree4f47eb02c4c6cc07137bf96d8a7cca96705b2058
parent3de89ab16c320350f20c828763b11a47cf2a2807 (diff)
downloadmitmproxy-ac252064208b65381b2c2a68e373538c3b2130ce.tar.gz
mitmproxy-ac252064208b65381b2c2a68e373538c3b2130ce.tar.bz2
mitmproxy-ac252064208b65381b2c2a68e373538c3b2130ce.zip
Indent JSON body while exporting it as code
Fixes #968
-rw-r--r--mitmproxy/flow_export.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/mitmproxy/flow_export.py b/mitmproxy/flow_export.py
index 52145516..97d5f403 100644
--- a/mitmproxy/flow_export.py
+++ b/mitmproxy/flow_export.py
@@ -1,7 +1,25 @@
import urllib
-import netlib.http
from textwrap import dedent
+import netlib.http
+from . import contentviews
+
+
+def prettify(data, headers=None):
+ if not headers:
+ return data
+
+ cv = contentviews.get_content_view(
+ contentviews.get("Auto"),
+ data,
+ headers=headers,
+ )
+
+ if cv[0] == "JSON":
+ return "\n".join(l[0][1] for l in cv[1])
+ else:
+ return data
+
def curl_command(flow):
data = "curl "
@@ -53,7 +71,7 @@ def python_code(flow):
data = ""
if flow.request.body:
- data = "\ndata = '''%s'''\n" % flow.request.body
+ data = "\ndata = '''%s'''\n" % prettify(flow.request.body, flow.request.headers)
args += "\n data=data,"
code = code.format(