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):  | 
