]> granicus.if.org Git - python/commitdiff
improve set_tunnel docs (closes #11448)
authorBenjamin Peterson <benjamin@python.org>
Sun, 16 Mar 2014 20:55:39 +0000 (15:55 -0500)
committerBenjamin Peterson <benjamin@python.org>
Sun, 16 Mar 2014 20:55:39 +0000 (15:55 -0500)
Patch by Ryan Kelly, karl, and Nikolaus Rath.

Doc/library/http.client.rst

index 783a5963dbdccd8a75998ee356b6350d30f6c101..bb30f241a316f8684d33768bd77c9dab706fe28e 100644 (file)
@@ -451,11 +451,25 @@ HTTPConnection Objects
 
 .. method:: HTTPConnection.set_tunnel(host, port=None, headers=None)
 
-   Set the host and the port for HTTP Connect Tunnelling. Normally used when it
-   is required to a HTTPS Connection through a proxy server.
+   Set the host and the port for HTTP Connect Tunnelling. This allows running
+   the connection through a proxy server.
 
-   The headers argument should be a mapping of extra HTTP headers to send
-   with the CONNECT request.
+   The host and port arguments specify the endpoint of the tunneled connection
+   (i.e. the address included in the CONNECT request, *not* the address of the
+   proxy server).
+
+   The headers argument should be a mapping of extra HTTP headers to send with
+   the CONNECT request.
+
+   For example, to tunnel through a HTTPS proxy server running locally on port
+   8080, we would pass the address of the proxy to the :class:`HTTPSConnection`
+   constructor, and the address of the host that we eventually want to reach to
+   the :meth:`~HTTPConnection.set_tunnel` method::
+
+      >>> import http.client
+      >>> conn = http.client.HTTPSConnection("localhost", 8080)
+      >>> conn.set_tunnel("www.python.org")
+      >>> conn.request("HEAD","/index.html")
 
    .. versionadded:: 3.2