XML-RPC: formato de respuesta

Las respuestas son muy parecidas a las solicitudes, con algunos cambios adicionales. Si la respuesta es exitosa, el procedimiento se encontró, se ejecutó correctamente y arrojó resultados, entonces la respuesta XML-RPC se parecerá mucho a una solicitud, excepto que el elemento methodCall se reemplaza por un elemento methodResponse y no hay ningún elemento methodName :

<?xml version="1.0"?>
<methodResponse>
   <params>
      <param>
         <value><double>18.24668429131</double></value>
      </param>
   </params>
</methodResponse>
  • Una respuesta XML-RPC solo puede contener un parámetro.

  • Ese parámetro puede ser una matriz o una estructura, por lo que es posible devolver varios valores.

  • Siempre es necesario devolver un valor en respuesta. Un "valor de éxito", quizás un valor booleano establecido en verdadero (1).

Al igual que las solicitudes, las respuestas se empaquetan en HTTP y tienen encabezados HTTP. Todas las respuestas XML-RPC utilizan el código de respuesta 200 OK, incluso si el mensaje contiene un error. Los encabezados utilizan una estructura común similar a la de las solicitudes, y un conjunto típico de encabezados podría verse así:

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 solo requiere compatibilidad con HTTP 1.0, pero HTTP 1.1 es compatible.

  • El tipo de contenido debe establecerse en texto / xml.

  • El encabezado Content-Length especifica la longitud de la respuesta en bytes.

Una respuesta completa, con encabezados y una carga útil de respuesta, se vería así:

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>

Una vez que la respuesta se envía desde el servidor XML-RPC al cliente XML-RPC, se cierra la conexión. Las solicitudes de seguimiento deben enviarse como conexiones XML-RPC independientes.