From: László Vaskó Date: Sun, 2 Dec 2012 00:19:07 +0000 (+0100) Subject: Added support for persistent connections (keep-alive) in proxy mode X-Git-Tag: v1.0.0~86^2^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5eb78876e19a7cd0b04965281273dc5ae25962d7;p=services%2Fpython-requests.git Added support for persistent connections (keep-alive) in proxy mode --- diff --git a/requests/models.py b/requests/models.py index 00d2370..045b3a5 100644 --- a/requests/models.py +++ b/requests/models.py @@ -557,7 +557,7 @@ class Request(object): proxy = self.proxies.get(_p.scheme) if proxy and not any(map(_p.hostname.endswith, no_proxy)): - conn = poolmanager.proxy_from_url(proxy) + conn = poolmanager.ProxyManager(self.get_connection_for_url(proxy)) _proxy = urlparse(proxy) if '@' in _proxy.netloc: auth, url = _proxy.netloc.split('@', 1) @@ -565,15 +565,10 @@ class Request(object): r = self.proxy_auth(self) self.__dict__.update(r.__dict__) else: - # Check to see if keep_alive is allowed. - try: - if self.config.get('keep_alive'): - conn = self._poolmanager.connection_from_url(url) - else: - conn = connectionpool.connection_from_url(url) - self.headers['Connection'] = 'close' - except LocationParseError as e: - raise InvalidURL(e) + conn = self.get_connection_for_url(url) + + if not self.config.get('keep_alive'): + self.headers['Connection'] = 'close' if url.startswith('https') and self.verify: @@ -672,6 +667,17 @@ class Request(object): return self.sent + def get_connection_for_url(self, url): + # Check to see if keep_alive is allowed. + try: + if self.config.get('keep_alive'): + conn = self._poolmanager.connection_from_url(url) + else: + conn = connectionpool.connection_from_url(url) + return conn + except LocationParseError as e: + raise InvalidURL(e) + class Response(object): """The core :class:`Response ` object. All