summaryrefslogtreecommitdiff
path: root/requests/adapters.py
diff options
context:
space:
mode:
authordaftshady <daftonshady@gmail.com>2013-11-19 18:59:22 +0900
committerdaftshady <daftonshady@gmail.com>2013-11-19 18:59:22 +0900
commit8c8938e8cb7ffded42cf463f652831ca7e88e5fc (patch)
tree816a272a9c4cc327bca35d79382eec0f266dce66 /requests/adapters.py
parent947375e982482de23bf74eac7d84140126862ac5 (diff)
downloadpython-requests-8c8938e8cb7ffded42cf463f652831ca7e88e5fc.tar.gz
issue #1746 : Don't lowercase the whole URL!
Diffstat (limited to 'requests/adapters.py')
-rw-r--r--requests/adapters.py11
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':