XML-RPC - 请求格式

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

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

例如,要将请求传递给名为 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

例如,如果在 /xmlrpc 上监听的 XML-RPC 服务器提供了 circleArea 方法,则请求可能如下所示:

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

Assembled, the entire request would look like:

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 请求,带有精心构建的有效负载。