ich bin relativ neu und unerfahren im Umgang mit Python. Ich habe eine Frage zum Wechsel auf Python 3 und hoffe ihr könnt mir helfen.
Ich will einen XML-RPC Client schreiben. Mit Python 2.7.2 funktionert das alles auch schon super. Damit das Skript möglichst lange unverändert laufen kann und da ich eh von Grund auf neu anfange, wollte ich es nun gleich für Python 3.2.2 schreiben. Da kriege ich aber einen Fehler, wenn ich über einen Proxy gehen will, bzw. ProxiedTransport nutze.
Das passiert mir allerdings auch mit dem Code aus der Python 3 Doku:
http://docs.python.org/py3k/library/xml ... rver-usage
Code: Alles auswählen
import xmlrpc.client, http.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.HTTP(self.proxy)
return h
def send_request(self, connection, handler, request_body):
connection.putrequest("POST", 'http://%s%s' % (self.realhost, handler))
def send_host(self, connection, host):
connection.putheader('Host', self.realhost)
p = ProxiedTransport()
p.set_proxy('proxy-server:8080')
server = xmlrpc.client.Server('http://time.xmlrpc.com/RPC2', transport=p)
print(server.currentTime.getCurrentTime())
Code: Alles auswählen
Traceback (most recent call last):
File "D:\(...)\my-xmlrpc-client.py", line 18, in <module>
print(server.currentTime.getCurrentTime())
File "C:\Python32\lib\xmlrpc\client.py", line 1095, in __call__
return self.__send(self.__name, args)
File "C:\Python32\lib\xmlrpc\client.py", line 1423, in __request
verbose=self.__verbose
File "C:\Python32\lib\xmlrpc\client.py", line 1136, in request
return self.single_request(host, handler, request_body, verbose)
File "C:\Python32\lib\xmlrpc\client.py", line 1147, in single_request
http_conn = self.send_request(host, handler, request_body, verbose)
TypeError: send_request() takes exactly 4 positional arguments (5 given)
Liegt der Fehler überhaupt an mir? Ich hoffe ihr könnt mir helfen und mir erklären was da los ist. ...und was meine Optionen sind.
Gruß und schon mal Danke!
Thomas