From 48fe34447de02bfe9827321fafe3277741d77c38 Mon Sep 17 00:00:00 2001 From: Jason Grout Date: Thu, 20 Aug 2015 21:59:57 +0000 Subject: [PATCH] Implement per-host proxies This change allows the proxy dict to be have entries of the form {'://': ''}. Host-specific proxies will be used in preference to the scheme-specific proxies (i.e., proxy dict entries with keys like 'http' or 'https'). Fixes #2722 --- requests/adapters.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requests/adapters.py b/requests/adapters.py index 60afb583..0f3dc4da 100644 --- a/requests/adapters.py +++ b/requests/adapters.py @@ -239,7 +239,8 @@ class HTTPAdapter(BaseAdapter): :param proxies: (optional) A Requests-style dictionary of proxies used on this request. """ proxies = proxies or {} - proxy = proxies.get(urlparse(url.lower()).scheme) + u = urlparse(url.lower()) + proxy = proxies.get(u.scheme+'://'+u.hostname, proxies.get(u.scheme)) if proxy: proxy = prepend_scheme_if_needed(proxy, 'http')