summaryrefslogtreecommitdiff
path: root/Doc/library/http.client.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/library/http.client.rst')
-rw-r--r--Doc/library/http.client.rst22
1 files changed, 18 insertions, 4 deletions
diff --git a/Doc/library/http.client.rst b/Doc/library/http.client.rst
index 783a5963db..bb30f241a3 100644
--- a/Doc/library/http.client.rst
+++ b/Doc/library/http.client.rst
@@ -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