[Twisted-Python] Hooking up XML-RPC to twisted...
Itamar Shtull-Trauring
lists at itamarst.org
Sun Oct 14 13:31:30 EDT 2001
...turned out to be trivial. The following is example code (depends on
latest CVS since twisted used to reject unknown content-types.)
===================================================================
"""Hook up an object to XML-RPC. An example session:
>>> s= xmlrpclib.Server('http://localhost:7080/')
>>> s.echo("lala")
['lala']
>>> s.echo("lala", 1)
['lala', 1]
>>> s.echo("lala", 4)
['lala', 4]
>>> s.echo("lala", 4, 3.4)
['lala', 4, 3.3999999999999999]
>>> s.echo("lala", 4, [1, 2])
['lala', 4, [1, 2]]
"""
from twisted.web import resource
import xmlrpclib
class XMLRPC(resource.Resource):
isLeaf = 1
def __init__(self, perspective):
resource.Resource.__init__(self)
self.perspective = perspective
def render(self, request):
args, methodName = xmlrpclib.loads(request.content)
method = getattr(self.perspective, "perspective_%s" % methodName)
return xmlrpclib.dumps((apply(method, args),))
class test:
def perspective_echo(self, *args):
return args
def main():
from twisted.internet.main import Application
from twisted.web import server
app = Application("xmlrpc-test")
app.listenOn(7080, server.Site(XMLRPC(test())))
app.run(0)
if __name__ == '__main__':
main()
More information about the Twisted-Python
mailing list