diff options
author | Maximilian Hils <git@maximilianhils.com> | 2016-07-16 00:13:58 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-16 00:13:58 -0700 |
commit | b27d59095d799436fed41eaeaba502ecceb40f76 (patch) | |
tree | 152440c1e22850b81aa115817bee4d661f2435de /netlib/http/headers.py | |
parent | 903807292b42b2481a3d72d6dbdc72939fc39b01 (diff) | |
parent | e6e39ce80f4daaf6a1d6f8d87616409486d358a5 (diff) | |
download | mitmproxy-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.py | 15 |
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 + ) |