XML-RPC响应格式

响应与请求非常类似,但又有一些不一样。 如果响应成功 - 找到过程,正确执行并返回结果 - 那么XML-RPC响应看起来很像请求 - 但是请求中methodCall元素被响应中methodResponse元素替换,并且没有methodName元素:

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

在上面响应返回结果中 -

  • XML-RPC响应只能包含一个参数。
  • 参数可以是数组或结构,因此可以返回多个值。
  • 始终需要有返回值作为响应。 “成功值” - 是布尔值true(1)

与请求一样,响应打包在HTTP中并具有HTTP标头。 即使消息中包含错误,所有XML-RPC响应都使用200 OK响应代码。 标头使用与请求类似的通用结构,一组典型的标头应该如下所示:

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仅需要HTTP 1.0支持,但HTTP 1.1兼容。
  • Content-Type必须设置为text/xml
  • Content-Length标头指定响应的长度(以字节为单位)。

带有标头和响应有效负载的完整响应如下所示:

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>

响应从XML-RPC服务器传递到XML-RPC客户端后,将关闭连接。 后续请求需要作为单独的XML-RPC连接发送。