'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.
This shoudl not be called from user code, and is only exposed for use
when subclassing the
:class:`HTTPAdapter <requests.adapters.HTTPAdapter>`.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param proxies: A dictionary of schemes to proxy URLs.'

def request_url(self, request, proxies):

    proxies = (proxies or {})
    proxy = proxies.get(urlparse(request.url).scheme)
    if proxy:
        (url, _) = urldefrag(request.url)
    else:
        url = request.path_url
    return url
