diff options
author | daftshady <daftonshady@gmail.com> | 2013-11-19 18:59:22 +0900 |
---|---|---|
committer | daftshady <daftonshady@gmail.com> | 2013-11-19 18:59:22 +0900 |
commit | 8c8938e8cb7ffded42cf463f652831ca7e88e5fc (patch) | |
tree | 816a272a9c4cc327bca35d79382eec0f266dce66 /requests/adapters.py | |
parent | 947375e982482de23bf74eac7d84140126862ac5 (diff) | |
download | python-requests-8c8938e8cb7ffded42cf463f652831ca7e88e5fc.tar.gz |
issue #1746 : Don't lowercase the whole URL!
Diffstat (limited to 'requests/adapters.py')
-rw-r--r-- | requests/adapters.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/requests/adapters.py b/requests/adapters.py index 77badc7f..5a99a67f 100644 --- a/requests/adapters.py +++ b/requests/adapters.py @@ -14,7 +14,7 @@ from .models import Response from .packages.urllib3.poolmanager import PoolManager, proxy_from_url from .packages.urllib3.response import HTTPResponse from .packages.urllib3.util import Timeout as TimeoutSauce -from .compat import urlparse, basestring, urldefrag, unquote +from .compat import urlparse, basestring, urldefrag, unquote, urlunparse from .utils import (DEFAULT_CA_BUNDLE_PATH, get_encoding_from_headers, except_on_missing_scheme, get_auth_from_url) from .structures import CaseInsensitiveDict @@ -206,7 +206,12 @@ class HTTPAdapter(BaseAdapter): conn = self.proxy_manager[proxy].connection_from_url(url) else: - conn = self.poolmanager.connection_from_url(url.lower()) + # Only scheme should be lower case + parsed = urlparse(url) + parsed = (parsed.scheme, parsed.netloc, parsed.path, + parsed.params, parsed.query, parsed.fragment) + url = urlunparse(parsed) + conn = self.poolmanager.connection_from_url(url) return conn @@ -232,7 +237,7 @@ class HTTPAdapter(BaseAdapter): :param proxies: A dictionary of schemes to proxy URLs. """ proxies = proxies or {} - scheme = urlparse(request.url).scheme.lower() + scheme = urlparse(request.url).scheme proxy = proxies.get(scheme) if proxy and scheme != 'https': |