XML-RPC over Jabber

XML-RPC is an easy way to get software that’s running on different operating systems to be able to make and respond to procedure calls (the “RPC” part of the name stands for “Remote Procedure Call”) over the Internet.

The basis of XML-RPC is straightforward and is described at XML-RPC’s home page (http://www.xml-rpc.com). The procedure calls, each consisting of the name of the procedure (or method) to call and a set of arguments to go with that call and the corresponding responses, each consisting of a set of results, are encoded in an XML-based format. The requests and responses, so encoded, are exchanged over HTTP, carried as the payloads of POST requests.

Example 10-8 shows a typical request in XML-RPC encoding. It’s calling a procedure called examples.getStateName, and passing a single integer parameter with the value 41.

Example 10-8. An XML-RPC request
<?xml version="1.0"?>
<methodCall>
  <methodName>examples.getStateName</methodName>
  <params>
    <param>
      <value><i4>41</i4></value>
    </param>
  </params>
</methodCall>

Example 10-9 shows a typical response to that request. The response consists of a single string value “South Dakota.”

Example 10-9. An XML-RPC response
<?xml version="1.0"?>
<methodResponse>
  <params>
    <param>
      <value><string>South Dakota</string></value>
    </param>
  </params>
</methodResponse>

The choice of the word “payload” to describe the encoded requests and responses is significant: each request, headed with an XML declaration (<?xml version="1.0"?> ...

Get Programming Jabber now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.