aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/contentviews/multipart.py
blob: e122df599f0ac105a9d538b8d45c6620505f3499 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from mitmproxy.net import http
from mitmproxy.coretypes import multidict
from . import base


class ViewMultipart(base.View):
    name = "Multipart Form"
    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)