[Zope] How do I form an XML-RPC query to a remote server?

Ender kthangavelu@earthlink.net
Thu, 16 Nov 2000 02:02:25 -0800


Tony McDonald wrote:
> 
> Hi all,
> I'm experimenting with collating data from a remote database that uses
> XML-RPC.
> 
> I can send it messages like;
> >>> import xmlrpclib
> >>> medweb = xmlrpclib.Server("http://bogus.server.com")
> >>> medweb.getImages('scar')
> '<?xml version="1.0" encoding="ISO-8859-1"
> ?>\015\012\011<data>\015\012\011\011<title>Medwebb Images</title> \0
> 
> (lots of stuff snipped)
> 
> But I just can't figure out how to send the XML version of the same query,
> ie
> <?XML VERSION="1.0"?>
> <methodCall>
>     <methodName>getimages</methodName>
>     <params>
>         <param>
>             <value><string>scar</string></value>
>             </param>
>         </params>
>     </methodCall>
> 
> to the server.
> 
> I've got a nasty feeling that when I get told how to do this, I'm going to
> slap my forehead bloody hard....
> 
> As you can see the data is returned in XML format, and whilst I'm fine with
> Python code for XML parsing (usually use sgmlop), I'm a bit lost on where to
> start here. An External Method seems the best way, but I'd like the received
> wisdom on this.

this probably isn't your problem, but in your above example getimages
looks like it should be getImages. 

i'm not sure why you want work by hand on the xml-processing, since
xmlrpclib already exists. if you want to debug your setup you can use
shane hathaway's tcpwatch as a proxy which show you what goes out on
the  wire. 

as for the location of such code, it depends on what you're doing with
the results, i think the choices are between a product and an external
method.

kapil