Looking at JabberRPCRequester Step by Step
After importing the libraries that we will need:
import jabber import xmlrpclib import string import sys
we specify a number of parameters:
Server = 'qmacro.dyndns.org' Username = 'client' Password = 'pass' Resource = 'jrpc-client' Endpoint = 'server@gnu.mine.nu/jrpc-server'; Method = 'examples.getCountyName';
The script connects to the Jabber server defined
in Server, with the username defined
in Username. The resource that will
be passed in the authentication request is jrpc-client.
There is as much significance in this name as there is in the
name of the resource used by
JabberRPCResponder (jrpc-server): none.
It’s just a useful naming convention to adopt when writing
requesters and responders.
A single parameter, which will be interpreted as
the index of the county to retrieve via the call to
examples.getCountyName, is expected.
county = string.atoi(sys.argv[1])
The method expects
an integer, so we convert it directly. This has a favorable
secondary effect when we come to XML-RPC encode the request;
if we hadn’t called the string.atoi()
function and left county as a string, this
is what the XML-RPC-encoded parcel would have looked like:
<methodCall>
<methodName>examples.getCountyName</methodName>
<params>
<param>
<value><string>1</string></value>
</param>
</params>
</methodCall>However, this is what we really want:
<methodCall> <methodName>examples.getCountyName</methodName> <params> <param> <value><int>1</int></value> </param> ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access