aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShadab Zafar <dufferzafar0@gmail.com>2016-01-13 19:21:13 +0530
committerShadab Zafar <dufferzafar0@gmail.com>2016-01-13 19:21:13 +0530
commit152e395fa49fc534e6897cf2411b7ce27e1d379f (patch)
tree7314869f99388c4ba7aeaf4f14ad400f892b9f89
parent34ec2d1370d0066c47f37819b543ec8465332c12 (diff)
downloadmitmproxy-152e395fa49fc534e6897cf2411b7ce27e1d379f.tar.gz
mitmproxy-152e395fa49fc534e6897cf2411b7ce27e1d379f.tar.bz2
mitmproxy-152e395fa49fc534e6897cf2411b7ce27e1d379f.zip
Copy as raw request
Issue #807 I am not entirely sure what needs to be returned in this case.
-rw-r--r--libmproxy/console/common.py12
-rw-r--r--libmproxy/console/flowlist.py1
-rw-r--r--libmproxy/console/flowview.py1
3 files changed, 14 insertions, 0 deletions
diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py
index 2ea77449..db40201f 100644
--- a/libmproxy/console/common.py
+++ b/libmproxy/console/common.py
@@ -282,6 +282,8 @@ def export_prompt(k, flow):
copy_as_curl_command(flow)
elif k == "p":
copy_as_python_code(flow)
+ elif k == "r":
+ copy_as_raw_request(flow)
def copy_as_curl_command(flow):
@@ -331,6 +333,16 @@ def copy_as_python_code(flow):
copy_to_clipboard_or_prompt(data)
+def copy_as_raw_request(flow):
+ if flow.request.content is None or flow.request.content == CONTENT_MISSING:
+ signals.status_message.send(message="Request content is missing")
+ return
+
+ data = netlib.http.http1.assemble_request(flow.request)
+
+ copy_to_clipboard_or_prompt(data)
+
+
def copy_to_clipboard_or_prompt(data):
# pyperclip calls encode('utf-8') on data to be copied without checking.
# if data are already encoded that way UnicodeDecodeError is thrown.
diff --git a/libmproxy/console/flowlist.py b/libmproxy/console/flowlist.py
index b52c0fea..2c18d197 100644
--- a/libmproxy/console/flowlist.py
+++ b/libmproxy/console/flowlist.py
@@ -262,6 +262,7 @@ class ConnectionItem(urwid.WidgetWrap):
keys = (
("as curl command", "c"),
("as python code", "p"),
+ ("as raw request", "r"),
),
callback = common.export_prompt,
args = (self.flow,)
diff --git a/libmproxy/console/flowview.py b/libmproxy/console/flowview.py
index 3a745262..7962c69c 100644
--- a/libmproxy/console/flowview.py
+++ b/libmproxy/console/flowview.py
@@ -582,6 +582,7 @@ class FlowView(tabs.Tabs):
keys = (
("as curl command", "c"),
("as python code", "p"),
+ ("as raw request", "r"),
),
callback = common.export_prompt,
args = (self.flow,)