aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/http/headers.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/headers.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/headers.py')
-rw-r--r--netlib/http/headers.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/netlib/http/headers.py b/netlib/http/headers.py
index c8cf3e43..36e5060c 100644
--- a/netlib/http/headers.py
+++ b/netlib/http/headers.py
@@ -2,6 +2,7 @@ from __future__ import absolute_import, print_function, division
import re
+import collections
import six
from netlib import multidict
from netlib import strutils
@@ -206,10 +207,22 @@ def parse_content_type(c):
ts = parts[0].split("/", 1)
if len(ts) != 2:
return None
- d = {}
+ d = collections.OrderedDict()
if len(parts) == 2:
for i in parts[1].split(";"):
clause = i.split("=", 1)
if len(clause) == 2:
d[clause[0].strip()] = clause[1].strip()
return ts[0].lower(), ts[1].lower(), d
+
+
+def assemble_content_type(type, subtype, parameters):
+ if not parameters:
+ return "{}/{}".format(type, subtype)
+ params = "; ".join(
+ "{}={}".format(k, v)
+ for k, v in parameters.items()
+ )
+ return "{}/{}; {}".format(
+ type, subtype, params
+ )