summaryrefslogtreecommitdiffstats
path: root/Doc/library
diff options
context:
space:
mode:
authorBerker Peksag <berker.peksag@gmail.com>2016-10-09 15:18:21 (GMT)
committerBerker Peksag <berker.peksag@gmail.com>2016-10-09 15:18:21 (GMT)
commit0aa7887f431f65f1d320c467ad9065ac2697db20 (patch)
treedb7987f3387f966e7d2ec774dbc02421f310d0c2 /Doc/library
parente259267e52fb14571ae3845d3d93985ad96425b9 (diff)
downloadcpython-0aa7887f431f65f1d320c467ad9065ac2697db20.zip
cpython-0aa7887f431f65f1d320c467ad9065ac2697db20.tar.gz
cpython-0aa7887f431f65f1d320c467ad9065ac2697db20.tar.bz2
Issue #28389: Fix ProxiedTransport example in xmlrpc.client documentation
Diffstat (limited to 'Doc/library')
-rw-r--r--Doc/library/xmlrpc.client.rst38
1 files changed, 16 insertions, 22 deletions
diff --git a/Doc/library/xmlrpc.client.rst b/Doc/library/xmlrpc.client.rst
index e7916d2..dad7a02 100644
--- a/Doc/library/xmlrpc.client.rst
+++ b/Doc/library/xmlrpc.client.rst
@@ -555,33 +555,27 @@ Example of Client Usage
print("ERROR", v)
To access an XML-RPC server through a HTTP proxy, you need to define a custom
-transport. The following example shows how:
+transport. The following example shows how::
-.. Example taken from http://lowlife.jp/nobonobo/wiki/xmlrpcwithproxy.html
-
-::
-
- import xmlrpc.client, http.client
+ import http.client
+ import xmlrpc.client
class ProxiedTransport(xmlrpc.client.Transport):
- def set_proxy(self, proxy):
- self.proxy = proxy
- def make_connection(self, host):
- self.realhost = host
- h = http.client.HTTPConnection(self.proxy)
- return h
-
- def send_request(self, connection, handler, request_body, debug):
- connection.putrequest("POST", 'http://%s%s' % (self.realhost, handler))
+ def set_proxy(self, host, port=None, headers=None):
+ self.proxy = host, port
+ self.proxy_headers = headers
- def send_host(self, connection, host):
- connection.putheader('Host', self.realhost)
-
- p = ProxiedTransport()
- p.set_proxy('proxy-server:8080')
- server = xmlrpc.client.ServerProxy('http://time.xmlrpc.com/RPC2', transport=p)
- print(server.currentTime.getCurrentTime())
+ def make_connection(self, host):
+ connection = http.client.HTTPConnection(*self.proxy)
+ connection.set_tunnel(host, headers=self.proxy_headers)
+ self._connection = host, connection
+ return connection
+
+ transport = ProxiedTransport()
+ transport.set_proxy('proxy-server', 8080)
+ server = xmlrpc.client.ServerProxy('http://betty.userland.com', transport=transport)
+ print(server.examples.getStateName(41))
Example of Client and Server Usage