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.