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 连接发送。