diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2011-07-15 16:16:43 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2011-07-15 16:46:54 +1200 |
commit | 94ae720a220da4beaa2fc6111b4cafb60b41d33b (patch) | |
tree | 6608a4263b21c62b72245864431dc11e95f609e5 /libmproxy/console.py | |
parent | 76b4c6ba82f9a1d6411710c82c67cf264d3bb1d3 (diff) | |
download | mitmproxy-94ae720a220da4beaa2fc6111b4cafb60b41d33b.tar.gz mitmproxy-94ae720a220da4beaa2fc6111b4cafb60b41d33b.tar.bz2 mitmproxy-94ae720a220da4beaa2fc6111b4cafb60b41d33b.zip |
Add a pretty-printing mode for urlencoded form data.
Diffstat (limited to 'libmproxy/console.py')
-rw-r--r-- | libmproxy/console.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/libmproxy/console.py b/libmproxy/console.py index 46aacab6..09149186 100644 --- a/libmproxy/console.py +++ b/libmproxy/console.py @@ -924,6 +924,17 @@ class ConsoleMaster(flow.FlowMaster): break self._trailer(sum(len(i) for i in lines), txt) + def _view_conn_urlencoded(self, lines, txt): + txt.append(urwid.Text(("highlight", "URLencoded data:\n"))) + txt.append( + urwid.Text( + format_keyvals( + [(k+":", v) for (k, v) in lines], + key = "header", + val = "text" + ) + ) + ) def _find_pretty_view(self, content, hdrItems, txt): ctype = None @@ -931,9 +942,13 @@ class ConsoleMaster(flow.FlowMaster): if i[0] == "content-type": ctype = i[1] break + if ctype and "x-www-form-urlencoded" in ctype: + data = utils.urldecode(content) + if data: + return self._view_conn_urlencoded(data, txt) if utils.isXML(content): return self._view_conn_xmlish(content, txt) - if ctype and "application/json" in ctype: + elif ctype and "application/json" in ctype: lines = utils.pretty_json(content) if lines: return self._view_conn_json(lines, txt) |