diff --git a/Doc/library/http.client.rst b/Doc/library/http.client.rst --- a/Doc/library/http.client.rst +++ b/Doc/library/http.client.rst @@ -452,11 +452,26 @@ .. 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. + is required to access a HTTPS Connection through a proxy server. + + The host and port arguments specify the endpoint of the tunnelled 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