diff --git a/mitmproxy/addons/export.py b/mitmproxy/addons/export.py index 638a1e2e5..80413ac99 100644 --- a/mitmproxy/addons/export.py +++ b/mitmproxy/addons/export.py @@ -30,6 +30,7 @@ def cleanup_request(f: flow.Flow) -> http.HTTPRequest: def request_content_for_console(request: http.HTTPRequest) -> str: try: text = request.get_text(strict=True) + assert text except ValueError: # shlex.quote doesn't support a bytes object # see https://github.com/python/cpython/pull/10871 diff --git a/test/mitmproxy/addons/test_export.py b/test/mitmproxy/addons/test_export.py index 1c16afb26..4b9057229 100644 --- a/test/mitmproxy/addons/test_export.py +++ b/test/mitmproxy/addons/test_export.py @@ -77,6 +77,14 @@ class TestExportCurlCommand: assert shlex.split(command)[-2] == '-d' assert shlex.split(command)[-1] == "'&#" + def test_strip_unnecessary(self, get_request): + get_request.request.headers.clear() + get_request.request.headers["host"] = "address" + get_request.request.headers[":authority"] = "address" + get_request.request.headers["accept-encoding"] = "br" + result = """curl --compressed 'http://address:22/path?a=foo&a=bar&b=baz'""" + assert export.curl_command(get_request) == result + class TestExportHttpieCommand: def test_get(self, get_request):