XML-RPC - Formato de solicitação

As solicitações XML-RPC são uma combinação de conteúdo XML e cabeçalhos HTTP. O conteúdo XML usa a estrutura de tipagem de dados para passar parâmetros e contém informações adicionais que identificam qual procedimento está sendo chamado, enquanto os cabeçalhos HTTP fornecem um wrapper para passar a solicitação pela web.

Cada solicitação contém um único documento XML, cujo elemento raiz é um elemento methodCall . Cada methodCall elemento contém um methodName elemento e um params elemento. O elemento methodName identifica o nome do procedimento a ser chamado, enquanto o elemento params contém uma lista de parâmetros e seus valores. Cada elemento params inclui uma lista de elementos param que, por sua vez, contêm elementos de valor .

Por exemplo, para passar uma solicitação para um método chamado circleArea , que usa um parâmetro Double (para o raio), a solicitação XML-RPC seria semelhante a:

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

Os cabeçalhos HTTP para essas solicitações refletirão os remetentes e o conteúdo. O modelo básico é o seguinte:

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

Por exemplo, se o método circleArea estava disponível em um servidor XML-RPC ouvindo em / xmlrpc , a solicitação pode ser semelhante a:

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

Montado, todo o pedido ficaria assim:

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>

É uma solicitação HTTP comum, com uma carga útil cuidadosamente construída.