XML-RPC - Formato richiesta
Le richieste XML-RPC sono una combinazione di contenuto XML e intestazioni HTTP. Il contenuto XML utilizza la struttura di tipizzazione dei dati per passare i parametri e contiene informazioni aggiuntive che identificano quale procedura viene chiamata, mentre le intestazioni HTTP forniscono un wrapper per il passaggio della richiesta sul Web.
Ogni richiesta contiene un singolo documento XML, il cui elemento radice è un elemento methodCall . Ogni elemento methodCall contiene un elemento methodName e un elemento params . L' elemento methodName identifica il nome della procedura da chiamare, mentre l' elemento params contiene un elenco di parametri e dei loro valori. Ogni elemento params include un elenco di elementi param che a loro volta contengono elementi value .
Ad esempio, per passare una richiesta a un metodo chiamato circleArea , che accetta un parametro Double (per il raggio), la richiesta XML-RPC sarà simile a:
<?xml version="1.0"?>
<methodCall>
<methodName>circleArea</methodName>
<params>
<param>
<value><double>2.41</double></value>
</param>
</params>
</methodCall>
Le intestazioni HTTP per queste richieste rifletteranno i mittenti e il contenuto. Il modello di base è il seguente:
POST /target HTTP 1.0
User-Agent: Identifier
Host: host.making.request
Content-Type: text/xml
Content-Length: length of request in bytes
Ad esempio, se il metodo circleArea era disponibile da un server XML-RPC in ascolto su / xmlrpc , la richiesta potrebbe essere simile a:
POST /xmlrpc HTTP 1.0
User-Agent: myXMLRPCClient/1.0
Host: 192.168.124.2
Content-Type: text/xml
Content-Length: 169
Assemblata, l'intera richiesta sarebbe simile a:
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>
È una normale richiesta HTTP, con un payload costruito con cura.