def request_url(self, request, proxies):
"""Obtain the url to use when making the final request.
- If the message is being sent through a proxy, the full URL has to be
- used. Otherwise, we should only use the path portion of the URL.
+ If the message is being sent through a HTTP proxy, the full URL has to
+ be used. Otherwise, we should only use the path portion of the URL.
This should not be called from user code, and is only exposed for use
when subclassing the
:param proxies: A dictionary of schemes to proxy URLs.
"""
proxies = proxies or {}
- proxy = proxies.get(urlparse(request.url).scheme)
+ scheme = urlparse(request.url).scheme.lower()
+ proxy = proxies.get(scheme)
- if proxy:
+ if proxy and scheme != 'https':
url, _ = urldefrag(request.url)
else:
url = request.path_url