aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShadab Zafar <dufferzafar0@gmail.com>2016-03-03 06:41:26 +0530
committerShadab Zafar <dufferzafar0@gmail.com>2016-03-03 06:44:19 +0530
commitec61cfddfd284a13d7bcf2807ba2e95c1a7f1d51 (patch)
tree0738f51ce7dd6ac1b12ae32aaddb1c57c1eaef59
parent1548185a17a824273f28a9a20298b2f4a8df4569 (diff)
downloadmitmproxy-ec61cfddfd284a13d7bcf2807ba2e95c1a7f1d51.tar.gz
mitmproxy-ec61cfddfd284a13d7bcf2807ba2e95c1a7f1d51.tar.bz2
mitmproxy-ec61cfddfd284a13d7bcf2807ba2e95c1a7f1d51.zip
Use json instead of contentviews
-rw-r--r--mitmproxy/flow_export.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/mitmproxy/flow_export.py b/mitmproxy/flow_export.py
index b3bef62f..f5b3e2ec 100644
--- a/mitmproxy/flow_export.py
+++ b/mitmproxy/flow_export.py
@@ -1,8 +1,9 @@
+import json
import urllib
from textwrap import dedent
import netlib.http
-from . import contentviews
+from netlib.utils import parse_content_type
def curl_command(flow):
@@ -55,14 +56,9 @@ def python_code(flow):
data = ""
if flow.request.body:
- cv = contentviews.get_content_view(
- viewmode=contentviews.get("Auto"),
- data=flow.request.body,
- headers=flow.request.headers,
- )
-
- if cv[0] == "JSON":
- data = "\njson = %s\n" % "\n".join(l[0][1] for l in cv[1])
+ if is_json(flow.request.headers):
+ data = json.dumps(json.loads(flow.request.body), indent=4)
+ data = "\njson = %s\n" % data
args += "\n json=json,"
else:
data = "\ndata = '''%s'''\n" % flow.request.body
@@ -83,3 +79,10 @@ def python_code(flow):
def raw_request(flow):
data = netlib.http.http1.assemble_request(flow.request)
return data
+
+
+def is_json(headers):
+ if headers:
+ ct = parse_content_type(headers.get("content-type", ""))
+ return ct and "%s/%s" % (ct[0], ct[1]) == "application/json"
+ return False