diff options
author | Shadab Zafar <dufferzafar0@gmail.com> | 2016-02-05 23:25:25 +0530 |
---|---|---|
committer | Shadab Zafar <dufferzafar0@gmail.com> | 2016-02-06 00:41:01 +0530 |
commit | 9efda4d138a02ec5bafef8894102f3d522cb5fe6 (patch) | |
tree | 567376ecb687ab51d533d673135e06434ac0e533 | |
parent | ae4a1dd6dec9d95e450837db8937e3fb7604c121 (diff) | |
download | mitmproxy-9efda4d138a02ec5bafef8894102f3d522cb5fe6.tar.gz mitmproxy-9efda4d138a02ec5bafef8894102f3d522cb5fe6.tar.bz2 mitmproxy-9efda4d138a02ec5bafef8894102f3d522cb5fe6.zip |
Refactor copy_as_python_code
Make it easier to support other HTTP request types
-rw-r--r-- | libmproxy/console/common.py | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/libmproxy/console/common.py b/libmproxy/console/common.py index 276e45c2..93c4df72 100644 --- a/libmproxy/console/common.py +++ b/libmproxy/console/common.py @@ -309,20 +309,32 @@ def copy_as_python_code(flow): signals.status_message.send(message="Currently, only GET methods are supported") return - data = ("import requests\n" - "headers = {%s}\n" - "url = '%s'\n" - "resp = requests.get(url, headers=headers)") - - headers = "\n" - for k, v in flow.request.headers.fields: - headers += " '%s': '%s',\n" % (k, v) - - full_url = flow.request.scheme + "://" + flow.request.host + flow.request.path - - data = data % (headers, full_url) + code = """import requests + +url = '{url}' +{headers} +response = requests.request( + method='{method}', + url=url,{args} +) + +print(response.text)""" + + args = "" + headers = "" + if flow.request.headers: + lines = [" '%s': '%s',\n" % (k, v) for k, v in flow.request.headers.fields] + headers += "\nheaders = {\n%s}\n" % "".join(lines) + args += "\n headers=headers," + + code = code.format( + url=flow.request.pretty_url, + headers=headers, + method=flow.request.method, + args=args, + ) - copy_to_clipboard_or_prompt(data) + copy_to_clipboard_or_prompt(code) def copy_as_raw_request(flow): |