diff options
author | Maximilian Hils <git@maximilianhils.com> | 2017-05-03 17:26:56 +0200 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2017-05-03 17:38:17 +0200 |
commit | 315daa042a2b390c3b66b87df87b72eb25188483 (patch) | |
tree | b83214343fe4904327cb6eda4811fa2441eac788 | |
parent | 822797c7e0588695ecf318b7e7c424eda393405c (diff) | |
download | mitmproxy-315daa042a2b390c3b66b87df87b72eb25188483.tar.gz mitmproxy-315daa042a2b390c3b66b87df87b72eb25188483.tar.bz2 mitmproxy-315daa042a2b390c3b66b87df87b72eb25188483.zip |
fix #2310
-rw-r--r-- | mitmproxy/net/http/message.py | 3 | ||||
-rw-r--r-- | test/mitmproxy/addons/test_export.py | 4 | ||||
-rw-r--r-- | test/mitmproxy/net/http/test_message.py | 8 |
3 files changed, 12 insertions, 3 deletions
diff --git a/mitmproxy/net/http/message.py b/mitmproxy/net/http/message.py index 1040c6ce..cb32aee4 100644 --- a/mitmproxy/net/http/message.py +++ b/mitmproxy/net/http/message.py @@ -226,8 +226,9 @@ class Message(serializable.Serializable): Raises: ValueError, when the content-encoding is invalid and strict is True. """ - self.raw_content = self.get_content(strict) + decoded = self.get_content(strict) self.headers.pop("content-encoding", None) + self.content = decoded def encode(self, e): """ diff --git a/test/mitmproxy/addons/test_export.py b/test/mitmproxy/addons/test_export.py index 5c7c4976..233c62d5 100644 --- a/test/mitmproxy/addons/test_export.py +++ b/test/mitmproxy/addons/test_export.py @@ -45,11 +45,11 @@ def tcp_flow(): class TestExportCurlCommand: def test_get(self, get_request): - result = """curl -H 'header:qvalue' -H 'content-length:7' 'http://address:22/path?a=foo&a=bar&b=baz'""" + result = """curl -H 'header:qvalue' -H 'content-length:0' 'http://address:22/path?a=foo&a=bar&b=baz'""" assert export.curl_command(get_request) == result def test_post(self, post_request): - result = "curl -X POST 'http://address:22/path' --data-binary '{}'".format( + result = "curl -H 'content-length:256' -X POST 'http://address:22/path' --data-binary '{}'".format( str(bytes(range(256)))[2:-1] ) assert export.curl_command(post_request) == result diff --git a/test/mitmproxy/net/http/test_message.py b/test/mitmproxy/net/http/test_message.py index b75bc7c2..c6036697 100644 --- a/test/mitmproxy/net/http/test_message.py +++ b/test/mitmproxy/net/http/test_message.py @@ -117,6 +117,14 @@ class TestMessageContentEncoding: assert r.content == b"message" assert r.raw_content != b"message" + def test_update_content_length_header(self): + r = tutils.tresp() + assert int(r.headers["content-length"]) == 7 + r.encode("gzip") + assert int(r.headers["content-length"]) == 27 + r.decode() + assert int(r.headers["content-length"]) == 7 + def test_modify(self): r = tutils.tresp() assert "content-encoding" not in r.headers |