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.