XML-RPC - Format de demande
Les requêtes XML-RPC sont une combinaison de contenu XML et d'en-têtes HTTP. Le contenu XML utilise la structure de typage des données pour transmettre des paramètres et contient des informations supplémentaires identifiant la procédure appelée, tandis que les en-têtes HTTP fournissent un wrapper pour transmettre la requête sur le Web.
Chaque requête contient un seul document XML, dont l'élément racine est un élément methodCall . Chaque élément methodCall contient un élément methodName et un élément params . L' élément methodName identifie le nom de la procédure à appeler, tandis que l' élément params contient une liste de paramètres et leurs valeurs. Chaque élément params comprend une liste d'éléments param qui à leur tour contiennent des éléments value .
Par exemple, pour passer une requête à une méthode appelée circleArea , qui prend un paramètre Double (pour le rayon), la requête XML-RPC ressemblerait à ceci:
<?xml version="1.0"?>
<methodCall>
<methodName>circleArea</methodName>
<params>
<param>
<value><double>2.41</double></value>
</param>
</params>
</methodCall>
Les en-têtes HTTP de ces demandes refléteront les expéditeurs et le contenu. Le modèle de base se présente comme suit:
POST /target HTTP 1.0
User-Agent: Identifier
Host: host.making.request
Content-Type: text/xml
Content-Length: length of request in bytes
Par exemple, si la méthode circleArea était disponible à partir d'un serveur XML-RPC écoutant sur / xmlrpc , la requête pourrait ressembler à ceci :
POST /xmlrpc HTTP 1.0
User-Agent: myXMLRPCClient/1.0
Host: 192.168.124.2
Content-Type: text/xml
Content-Length: 169
Assemblé, la demande entière ressemblerait à:
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>
C'est une requête HTTP ordinaire, avec une charge utile soigneusement construite.