I've been having trouble solving this problem for days, and wasn't able to find any useful resource on this on the internet, so I'll share my findings on this matter for future reference:
The Python 2.7 xmlrpclib
client has the types defined by the XMLRPC standard built-in, plus a few common extensions. Other XMLRPC-servers, such as Apache, will however sometimes use their own types, or put extensions in special namespaces, etc.
For example, when you send an 8 byte integer with Apache (which is not covered by the XMLRPC standard), it will send the following response:
<methodResponse xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">
<params>
<param>
<value>
<ex:i8>123456789</ex:i8>
</value>
</param>
</params>
</methodResponse>
If you naively try to handle these types with Python you will get an empty tuple result. How can I adjust xmlrpclib
to handle such cases?