XML-RPC - 请求格式



XML-RPC 请求是 XML 内容和 HTTP 头的组合。XML 内容使用数据类型结构传递参数并包含识别需要调用的过程的其他信息,而 HTTP 头提供一个包装器,以便通过网络传递请求。

每个请求都包含一个 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

组装后,整个请求看起来像

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

广告