XML-RPC

Introduction

The client sends XML-encoded strings. The XML schema has the following form:

<?xml version="1.0"?>
<methodCall>
  <methodName>trigger</methodName>
  <params>
    <param>
        <value><string>votenet</string></value>
    </param>
    <param>
        <value><boolean>1</boolean></value>
    </param>
  </params>
</methodCall>

A response from a method call, for example for retrieving a robot pose, could look something like this:

<?xml version="1.0"?>
<methodResponse>
  <params>
    <param>
        <value>
          <array>
            <data>
              <value><double>0.34</double></value>
              <value><double>-0.56</double></value>
              <value><double>1.23</double></value>
              <value><double>57.6</double></value>
              <value><double>-0.24</double></value>
              <value><double>89.77</double></value>
            </data>
          </array>
        </value>
    </param>
  </params>
</methodResponse>

A detailed description of the XML-RPC protocol can be found on Wikipedia. Notably, controllers by Universal Robotsoffer XML-RPC support out-of-the-box.

Client Implementation and Testing

A fully functional XML-RPC client implementation is included in the Python standard library and can be tested against our public cloud endpoint https://staging.api.gke.vathos.net/mocks/edge/xmlrpc:

import xmlrpc.client

rpc_client = xmlrpc.client.ServerProxy('https://staging.api.gke.vathos.net/mocks/edge/xmlrpc')
rpc_client.trigger_async('votenet', True)

Back to top

©2025 Vathos GmbH | All rights reserved.