Kaydet (Commit) 0aa7887f authored tarafından Berker Peksag's avatar Berker Peksag

Issue #28389: Fix ProxiedTransport example in xmlrpc.client documentation

üst e259267e
...@@ -555,33 +555,27 @@ Example of Client Usage ...@@ -555,33 +555,27 @@ Example of Client Usage
print("ERROR", v) print("ERROR", v)
To access an XML-RPC server through a HTTP proxy, you need to define a custom 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 http.client
import xmlrpc.client
::
import xmlrpc.client, http.client
class ProxiedTransport(xmlrpc.client.Transport): class ProxiedTransport(xmlrpc.client.Transport):
def set_proxy(self, proxy):
self.proxy = proxy
def make_connection(self, host): def set_proxy(self, host, port=None, headers=None):
self.realhost = host self.proxy = host, port
h = http.client.HTTPConnection(self.proxy) self.proxy_headers = headers
return h
def send_request(self, connection, handler, request_body, debug):
connection.putrequest("POST", 'http://%s%s' % (self.realhost, handler))
def send_host(self, connection, host): def make_connection(self, host):
connection.putheader('Host', self.realhost) connection = http.client.HTTPConnection(*self.proxy)
connection.set_tunnel(host, headers=self.proxy_headers)
p = ProxiedTransport() self._connection = host, connection
p.set_proxy('proxy-server:8080') return connection
server = xmlrpc.client.ServerProxy('http://time.xmlrpc.com/RPC2', transport=p)
print(server.currentTime.getCurrentTime()) 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 Example of Client and Server Usage
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment