XML-RPC - format żądania

Żądania XML-RPC to połączenie treści XML i nagłówków HTTP. Treść XML wykorzystuje strukturę typowania danych do przekazywania parametrów i zawiera dodatkowe informacje identyfikujące wywoływaną procedurę, podczas gdy nagłówki HTTP zapewniają otokę do przekazywania żądania przez sieć WWW.

Każde żądanie zawiera pojedynczy dokument XML, którego elementem głównym jest element methodCall . Każdy element methodCall zawiera element methodName i element params . Element methodName identyfikuje nazwę procedury, która ma zostać wywołana, natomiast element params zawiera listę parametrów i ich wartości. Każdy element params zawiera listę elementów param, które z kolei zawierają elementy wartości .

Na przykład, aby przekazać żądanie do metody o nazwie circleArea , która przyjmuje parametr Double (dla promienia), żądanie XML-RPC wyglądałoby następująco:

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

Nagłówki HTTP dla tych żądań będą odzwierciedlać nadawców i zawartość. Podstawowy szablon wygląda następująco:

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

Na przykład, jeśli metoda circleArea była dostępna z serwera XML-RPC nasłuchującego w / xmlrpc , żądanie może wyglądać następująco:

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

Po złożeniu całe żądanie wyglądałoby następująco:

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>

To zwykłe żądanie HTTP ze starannie skonstruowanym ładunkiem.