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請求,具有精心構造的有效負載。