aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/contentviews/multipart.py
diff options
context:
space:
mode:
Diffstat (limited to 'mitmproxy/contentviews/multipart.py')
-rw-r--r--mitmproxy/contentviews/multipart.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/mitmproxy/contentviews/multipart.py b/mitmproxy/contentviews/multipart.py
new file mode 100644
index 00000000..0b0e51e2
--- /dev/null
+++ b/mitmproxy/contentviews/multipart.py
@@ -0,0 +1,21 @@
+from mitmproxy.net import http
+from mitmproxy.types import multidict
+from . import base
+
+
+class ViewMultipart(base.View):
+ name = "Multipart Form"
+ prompt = ("multipart", "m")
+ content_types = ["multipart/form-data"]
+
+ @staticmethod
+ def _format(v):
+ yield [("highlight", "Form data:\n")]
+ for message in base.format_dict(multidict.MultiDict(v)):
+ yield message
+
+ def __call__(self, data, **metadata):
+ headers = metadata.get("headers", {})
+ v = http.multipart.decode(headers, data)
+ if v:
+ return "Multipart form", self._format(v)