J'expérimente avec XML-RPC.Qu'est-ce qui pourrait causer xmlrpclib.ResponseError: ResponseError()?
J'ai le script serveur suivant (Python):
from SimpleXMLRPCServer import SimpleXMLRPCServer
server = SimpleXMLRPCServer(('localhost', 9000))
def return_input(someinput):
return someinput
server.register_function(return_input)
try:
print 'ctrl-c to stop server'
server.serve_forever()
except KeyboardInterrupt:
print 'stopping'
et le script client suivant:
import xmlrpclib
server = xmlrpclib.ServerProxy('http://www.example.com/pathto/xmlrpcTester2.py')
print server.return_input('some input')
J'ai testé localement et il fonctionne très bien. Tout ce qu'il fait crache l'entrée du script client, ce qui est juste.
Cependant, lorsque je tente de le faire sur un serveur distant, je reçois l'erreur suivante:
Traceback (most recent call last):
File "client.py", line 4, in <module>
print server.return_input('some input')
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 1199, in __call__
return self.__send(self.__name, args)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 1489, in __request
verbose=self.__verbose
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 1253, in request
return self._parse_response(h.getfile(), sock)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 1392, in _parse_response
return u.close()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 836, in close
raise ResponseError()
xmlrpclib.ResponseError: ResponseError()
Toutes les idées ce qui pourrait être la cause?
MISE À JOUR:
quand verbose=True
:
send: 'POST /pythonScripts/xmlrpcTester2.py HTTP/1.0\r\nHost: www.example.com\r\nUser-Agent: xmlrpclib.py/1.0.1 (by www.pythonware.com)\r\nContent- Type: text/xml\r\nContent-Length: 166\r\n\r\n'
send: "<?xml version='1.0'? >\n<methodCall>\n<methodName>return_input</methodName>\n<params>\n<param>\n<value><string>so me input</string></value>\n</param>\n</params>\n</methodCall>\n"
reply: 'HTTP/1.1 200 OK\r\n'
header: Date: Fri, 14 May 2010 20:52:25 GMT
header: Server: Apache/2.2.9 (Fedora)
header: Last-Modified: Fri, 14 May 2010 20:52:03 GMT
header: ETag: "7e206-13d-486940c17a2c0"
header: Accept-Ranges: bytes
header: Content-Length: 317
header: Connection: close
header: Content-Type: text/plain; charset=UTF-8
body: "from SimpleXMLRPCServer import SimpleXMLRPCServer\r\n\r\nserver = SimpleXMLRPCServer(('localhost', 8000))\r\n\r\ndef return_input(someinput):\r\n\treturn someinput\r\n\r\nserver.register_function(return_input)\r\n\r\ntry:\r\n print 'ctrl-c to stop server'\r\n server.serve_forever()\r\nexcept KeyboardInterrupt:\r\n print 'stopping'"
Traceback (most recent call last):
File "client.py", line 4, in <module>
print server.return_input('some input')
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 1199, in __call__
return self.__send(self.__name, args)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 1489, in __request
verbose=self.__verbose
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 1253, in request
return self._parse_response(h.getfile(), sock)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 1392, in _parse_response
return u.close()
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xmlrpclib.py", line 836, in close
raise ResponseError()
xmlrpclib.ResponseError: ResponseError()
Merci Douglas; Je regarde dans vos suggestions. Si cela aide, j'ai mis à jour le post avec ce que je reçois quand verbose = True – Tom