From: Johannes Gorset Date: Thu, 8 Mar 2012 11:38:00 +0000 (+0100) Subject: Facilitate proxy configuration by environment variables X-Git-Tag: v0.10.8~12 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=21c2146be451a623012ca561c8322f970e7eeb4a;p=services%2Fpython-requests.git Facilitate proxy configuration by environment variables --- diff --git a/docs/user/advanced.rst b/docs/user/advanced.rst index aec9cac..7c14ba1 100644 --- a/docs/user/advanced.rst +++ b/docs/user/advanced.rst @@ -291,3 +291,30 @@ To do so, just configure Requests with a stream to write to:: >>> requests.get('http://httpbin.org/headers', config=my_config) 2011-08-17T03:04:23.380175 GET http://httpbin.org/headers + +Proxies +------- + +If you need to use a proxy, you can configure individual requests with the +``proxies`` argument to any request method: + +:: + + import requests + + proxies = { + "http": "10.10.1.10:3128" + "https": "10.10.1.10:1080" + } + + requests.get("http://example.org", proxies=proxies) + +You can also configure proxies by environment variables ``HTTP_PROXY`` and ``HTTPS_PROXY``. + +:: + + $ export HTTP_PROXY="10.10.1.10:3128" + $ export HTTPS_PROXY="10.10.1.10:1080" + $ python + >>> import requests + >>> requests.get("http://example.org") diff --git a/requests/models.py b/requests/models.py index 1b143b0..795c115 100644 --- a/requests/models.py +++ b/requests/models.py @@ -102,6 +102,14 @@ class Request(object): # Dictionary mapping protocol to the URL of the proxy (e.g. {'http': 'foo.bar:3128'}) self.proxies = dict(proxies or []) + # If no proxies are given, allow configuration by environment variables + # HTTP_PROXY and HTTPS_PROXY. + if not self.proxies: + if 'HTTP_PROXY' in os.environ: + self.proxies['http'] = os.environ['HTTP_PROXY'] + if 'HTTPS_PROXY' in os.environ: + self.proxies['https'] = os.environ['HTTPS_PROXY'] + self.data, self._enc_data = self._encode_params(data) self.params, self._enc_params = self._encode_params(params)