aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2017-05-03 18:41:07 +0200
committerGitHub <noreply@github.com>2017-05-03 18:41:07 +0200
commit40f387eb48c192391fcf265e05d0605217b58ea7 (patch)
treeb83214343fe4904327cb6eda4811fa2441eac788
parent822797c7e0588695ecf318b7e7c424eda393405c (diff)
parent315daa042a2b390c3b66b87df87b72eb25188483 (diff)
downloadmitmproxy-40f387eb48c192391fcf265e05d0605217b58ea7.tar.gz
mitmproxy-40f387eb48c192391fcf265e05d0605217b58ea7.tar.bz2
mitmproxy-40f387eb48c192391fcf265e05d0605217b58ea7.zip
Merge pull request #2311 from mhils/issue-2310
fix #2310
-rw-r--r--mitmproxy/net/http/message.py3
-rw-r--r--test/mitmproxy/addons/test_export.py4
-rw-r--r--test/mitmproxy/net/http/test_message.py8
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