一些 XML-RPC 服务器提供了内置方法。这些方法不是 XML-RPC 本身的一部分,但它们是非常方便的附加功能。
Edd Dumbill 提议了以下方法集
array system.listMethods () string system.methodHelp (string methodName) array system.methodSignature (string methodName) |
如果服务器支持这些方法,您可以要求它打印一些文档
import xmlrpclib server = xmlrpclib.Server("http://xmlrpc-c.sourceforge.net/api/sample.php") for method in server.system.listMethods(): print method print server.system.methodHelp(method) print |
目前,用 PHP、C 和 Microsoft .NET 编写的服务器支持这些方法。UserLand Frontier 的最新更新中包含了部分内省支持。Perl、Python 和 Java 的内省支持可在 XML-RPC Hacks 页面找到。请随时为其他 XML-RPC 服务器添加内省支持!
各种客户端工具(文档生成器、包装器生成器等等)也可以在 XML-RPC Hacks 页面找到。
如果您正在编写一个进行大量小型函数调用的 XML-RPC 客户端,您可能会发现由于互联网骨干网延迟,您的往返时间相当高。一些服务器允许您使用以下函数批量处理多个请求
array system.multicall (array calls) |
您可以在 system.multicall RFC 中找到更多信息。
目前,用 C 和 UserLand Frontier 编写的服务器支持此方法。用 Python 和 Perl 编写的服务器可以使用 XML-RPC Hacks 页面上的代码。