diff options
author | R David Murray <rdmurray@bitdance.com> | 2013-04-28 15:07:16 (GMT) |
---|---|---|
committer | R David Murray <rdmurray@bitdance.com> | 2013-04-28 15:07:16 (GMT) |
commit | 5aea37ad1dad0841ab6b5408156cff592fbfa310 (patch) | |
tree | b797422a9b99d0958bd1c86775d9bb03429522a9 | |
parent | abac0a7744c6c317821935f86a342a44cba1aaaf (diff) | |
download | cpython-5aea37ad1dad0841ab6b5408156cff592fbfa310.zip cpython-5aea37ad1dad0841ab6b5408156cff592fbfa310.tar.gz cpython-5aea37ad1dad0841ab6b5408156cff592fbfa310.tar.bz2 |
#7152: Clarify that ProxyHandler is added only if proxy settings are detected.
Behavior confirmation and initial patch by Jessica McKellar.
-rw-r--r-- | Doc/howto/urllib2.rst | 8 | ||||
-rw-r--r-- | Doc/library/urllib.request.rst | 15 | ||||
-rw-r--r-- | Misc/ACKS | 1 |
3 files changed, 15 insertions, 9 deletions
diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst index 955e455..77ef505 100644 --- a/Doc/howto/urllib2.rst +++ b/Doc/howto/urllib2.rst @@ -504,9 +504,10 @@ than the URL you pass to .add_password() will also match. :: In the above example we only supplied our ``HTTPBasicAuthHandler`` to ``build_opener``. By default openers have the handlers for normal situations - -- ``ProxyHandler``, ``UnknownHandler``, ``HTTPHandler``, + -- ``ProxyHandler`` (if a proxy setting such as an :envvar:`http_proxy` + environment variable is set), ``UnknownHandler``, ``HTTPHandler``, ``HTTPDefaultErrorHandler``, ``HTTPRedirectHandler``, ``FTPHandler``, - ``FileHandler``, ``HTTPErrorProcessor``. + ``FileHandler``, ``DataHandler``, ``HTTPErrorProcessor``. ``top_level_url`` is in fact *either* a full URL (including the 'http:' scheme component and the hostname and optionally the port number) @@ -521,7 +522,8 @@ Proxies ======= **urllib** will auto-detect your proxy settings and use those. This is through -the ``ProxyHandler`` which is part of the normal handler chain. Normally that's +the ``ProxyHandler``, which is part of the normal handler chain when a proxy +setting is detected. Normally that's a good thing, but there are occasions when it may not be helpful [#]_. One way to do this is to setup our own ``ProxyHandler``, with no proxies defined. This is done using similar steps to setting up a `Basic Authentication`_ handler : :: diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst index c507084..0ccfda2 100644 --- a/Doc/library/urllib.request.rst +++ b/Doc/library/urllib.request.rst @@ -87,8 +87,10 @@ The :mod:`urllib.request` module defines the following functions: the default installed global :class:`OpenerDirector` uses :class:`UnknownHandler` to ensure this never happens). - In addition, default installed :class:`ProxyHandler` makes sure the requests - are handled through the proxy when they are set. + In addition, if proxy settings are detected (for example, when a ``*_proxy`` + environment variable like :envvar:`http_proxy` is set), + :class:`ProxyHandler` is default installed and makes sure the requests are + handled through the proxy. The legacy ``urllib.urlopen`` function from Python 2.6 and earlier has been discontinued; :func:`urllib.request.urlopen` corresponds to the old @@ -126,7 +128,8 @@ The :mod:`urllib.request` module defines the following functions: subclasses of :class:`BaseHandler` (in which case it must be possible to call the constructor without any parameters). Instances of the following classes will be in front of the *handler*\s, unless the *handler*\s contain them, - instances of them or subclasses of them: :class:`ProxyHandler`, + instances of them or subclasses of them: :class:`ProxyHandler` (if proxy + settings are detected), :class:`UnknownHandler`, :class:`HTTPHandler`, :class:`HTTPDefaultErrorHandler`, :class:`HTTPRedirectHandler`, :class:`FTPHandler`, :class:`FileHandler`, :class:`HTTPErrorProcessor`. @@ -256,9 +259,9 @@ The following classes are provided: Cause requests to go through a proxy. If *proxies* is given, it must be a dictionary mapping protocol names to URLs of proxies. The default is to read the list of proxies from the environment variables :envvar:`<protocol>_proxy`. - If no proxy environment variables are set, in a Windows environment, proxy - settings are obtained from the registry's Internet Settings section and in a - Mac OS X environment, proxy information is retrieved from the OS X System + If no proxy environment variables are set, then in a Windows environment proxy + settings are obtained from the registry's Internet Settings section, and in a + Mac OS X environment proxy information is retrieved from the OS X System Configuration Framework. To disable autodetected proxy pass an empty dictionary. @@ -786,6 +786,7 @@ Kirk McDonald Chris McDonough Greg McFarlane Alan McIntyre +Jessica McKellar Michael McLay Brendan McLoughlin Mark Mc Mahon |