XML-RPC - Formato de Resposta

As respostas são muito parecidas com pedidos, com algumas variações extras. Se a resposta for bem-sucedida - o procedimento foi encontrado, executado corretamente e retornou resultados - então a resposta XML-RPC se parecerá muito com uma solicitação, exceto que o elemento methodCall é substituído por um elemento methodResponse e não há elemento methodName :

<?xml version="1.0"?>
<methodResponse>
   <params>
      <param>
         <value><double>18.24668429131</double></value>
      </param>
   </params>
</methodResponse>
  • Uma resposta XML-RPC pode conter apenas um parâmetro.

  • Esse parâmetro pode ser uma matriz ou uma estrutura, portanto, é possível retornar vários valores.

  • É sempre necessário retornar um valor em resposta. Um "valor de sucesso" - talvez um Booleano definido como verdadeiro (1).

Como as solicitações, as respostas são empacotadas em HTTP e têm cabeçalhos HTTP. Todas as respostas XML-RPC usam o código de resposta 200 OK, mesmo se houver uma falha na mensagem. Os cabeçalhos usam uma estrutura comum semelhante à das solicitações, e um conjunto típico de cabeçalhos pode ser assim:

HTTP/1.1 200 OK
Date: Sat, 06 Oct 2001 23:20:04 GMT
Server: Apache.1.3.12 (Unix)
Connection: close
Content-Type: text/xml
Content-Length: 124
  • XML-RPC requer apenas suporte HTTP 1.0, mas HTTP 1.1 é compatível.

  • O Content-Type deve ser definido como text / xml.

  • O cabeçalho Content-Length especifica o comprimento da resposta em bytes.

Uma resposta completa, com cabeçalhos e uma carga útil de resposta, seria assim:

HTTP/1.1 200 OK
Date: Sat, 06 Oct 2001 23:20:04 GMT
Server: Apache.1.3.12 (Unix)
Connection: close
Content-Type: text/xml
Content-Length: 124

<?xml version="1.0"?>
<methodResponse>
   <params>
      <param>
         <value><double>18.24668429131</double></value>
      </param>
   </params>
</methodResponse>

Depois que a resposta é entregue do servidor XML-RPC para o cliente XML-RPC, a conexão é fechada. As solicitações de acompanhamento precisam ser enviadas como conexões XML-RPC separadas.