fettig.net

Asynchronous XML-RPC

Posted by Abe on Tuesday, October 1, 2002 @ 11:20 am

As part of converting Hep to use the Twisted Framework, I had to find a way to do XML-RPC calls asynchronously. This is to avoid having Hep freeze up while waiting to for an XML-RPC reply to come back from a server.

The result was asyncxmlrpc.py, which you can find here. It provides a ServerProxy class that works just like the one in Python’s built-in xmlrpclib, except that when you call a function it returns a Twisted Deferred object that you can add callbacks too.

Example:


from twisted.internet import reactor

def printState(stateName):

    print stateName

import asyncxmlrpc

s = asyncxmlrpc.ServerProxy('http://betty.userland.com')

d = s.examples.getStateName(19)

d.addCallback(printState)

reactor.run()

At the moment this only works over straight HTTP, no SSL. And of course, it requires Twisted to work.

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.