XML-RPC请求格式

XML-RPC请求是XML内容和HTTP标头的组合。 XML内容使用数据类型结构来传递参数,并包含标识指定要调用哪个过程的附加信息,而HTTP标头提供了一个用于通过Web传递请求的包装器。

每个请求都包含一个XML文档,其根元素是methodCall元素。 每个methodCall元素都包含一个methodName元素和一个params元素。 methodName元素标识要调用的过程的名称,而params元素包含参数列表和值。 每个params元素包括一个param元素列表,而param元素又包含值元素。

例如,要将请求传递给名称为circleArea的方法,该方法采用double类型参数(对于半径),XML-RPC请求格式将如下所示:

<?xml version=1.0?>
<methodCall>
   <methodName>circleArea</methodName>
      <params>
         <param>
            <value><double>2.41</double></value>
         </param>
      </params>
</methodCall>

这些请求的HTTP标头将反映发送者和内容。 基本模板如下所示:

POST /target HTTP 1.0
User-Agent: Identifier
Host: host.making.request
Content-Type: text/xml
Content-Length: length of request in bytes

例如,如果circleArea方法可在/xmlrpc侦听XML-RPC服务器获得返回结果,则请求如下所示:

POST /xmlrpc HTTP 1.0
User-Agent: myXMLRPCClient/1.0
Host: 192.168.124.2
Content-Type: text/xml
Content-Length: 169

组装信息后,整个请求看起来如下:

POST /xmlrpc HTTP 1.0
User-Agent: myXMLRPCClient/1.0
Host: 192.168.124.2
Content-Type: text/xml
Content-Length: 169
<?xml version=1.0?>
<methodCall>
   <methodName>circleArea</methodName>
      <params>
         <param>
            <value><double>2.41</double></value>
         </param>
      </params>
</methodCall>

这是一个普通的HTTP请求,具有精心构造的有效负载。