diff options
Diffstat (limited to 'requests/models.py')
-rw-r--r-- | requests/models.py | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/requests/models.py b/requests/models.py index ec2edc20..a5c0c8b7 100644 --- a/requests/models.py +++ b/requests/models.py @@ -15,6 +15,7 @@ import sys # such as in Embedded Python. See https://github.com/psf/requests/issues/3578. import encodings.idna +import urllib3 from urllib3.fields import RequestField from urllib3.filepost import encode_multipart_formdata from urllib3.util import parse_url @@ -36,9 +37,21 @@ from .utils import ( stream_decode_response_unicode, to_key_val_list, parse_header_links, iter_slices, guess_json_utf, super_len, check_header_validity) from .compat import ( - Callable, Mapping, - cookielib, urlunparse, urlsplit, urlencode, str, bytes, - is_py2, chardet, builtin_str, basestring) + SKIP_HEADER, + SKIPPABLE_HEADERS, + Callable, + Mapping, + cookielib, + urlunparse, + urlsplit, + urlencode, + str, + bytes, + is_py2, + chardet, + builtin_str, + basestring, +) from .compat import json as complexjson from .status_codes import codes @@ -447,9 +460,14 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin): self.headers = CaseInsensitiveDict() if headers: for header in headers.items(): + name, value = header + if value is None: + if name.lower() in SKIPPABLE_HEADERS: + value = SKIP_HEADER + else: + continue # Raise exception on invalid header value. check_header_validity(header) - name, value = header self.headers[to_native_string(name)] = value def prepare_body(self, data, files, json=None): |