aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/http/request.py
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-07-16 00:13:58 -0700
committerGitHub <noreply@github.com>2016-07-16 00:13:58 -0700
commitb27d59095d799436fed41eaeaba502ecceb40f76 (patch)
tree152440c1e22850b81aa115817bee4d661f2435de /netlib/http/request.py
parent903807292b42b2481a3d72d6dbdc72939fc39b01 (diff)
parente6e39ce80f4daaf6a1d6f8d87616409486d358a5 (diff)
downloadmitmproxy-b27d59095d799436fed41eaeaba502ecceb40f76.tar.gz
mitmproxy-b27d59095d799436fed41eaeaba502ecceb40f76.tar.bz2
mitmproxy-b27d59095d799436fed41eaeaba502ecceb40f76.zip
Merge pull request #1306 from mitmproxy/message-body-encoding
Improve Message Body Encoding
Diffstat (limited to 'netlib/http/request.py')
-rw-r--r--netlib/http/request.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/netlib/http/request.py b/netlib/http/request.py
index c4c39942..ecaa9b79 100644
--- a/netlib/http/request.py
+++ b/netlib/http/request.py
@@ -5,7 +5,6 @@ import re
import six
from six.moves import urllib
-from netlib import encoding
from netlib import multidict
from netlib import strutils
from netlib.http import multipart
@@ -56,6 +55,7 @@ class Request(message.Message):
An HTTP request.
"""
def __init__(self, *args, **kwargs):
+ super(Request, self).__init__()
self.data = RequestData(*args, **kwargs)
def __repr__(self):
@@ -339,7 +339,7 @@ class Request(message.Message):
self.headers["accept-encoding"] = (
', '.join(
e
- for e in encoding.ENCODINGS
+ for e in {"gzip", "identity", "deflate"}
if e in accept_encoding
)
)
@@ -359,7 +359,10 @@ class Request(message.Message):
def _get_urlencoded_form(self):
is_valid_content_type = "application/x-www-form-urlencoded" in self.headers.get("content-type", "").lower()
if is_valid_content_type:
- return tuple(netlib.http.url.decode(self.content))
+ try:
+ return tuple(netlib.http.url.decode(self.content))
+ except ValueError:
+ pass
return ()
def _set_urlencoded_form(self, value):
@@ -388,7 +391,10 @@ class Request(message.Message):
def _get_multipart_form(self):
is_valid_content_type = "multipart/form-data" in self.headers.get("content-type", "").lower()
if is_valid_content_type:
- return multipart.decode(self.headers, self.content)
+ try:
+ return multipart.decode(self.headers, self.content)
+ except ValueError:
+ pass
return ()
def _set_multipart_form(self, value):