回应很像请求,还有一些额外的曲折.如果响应成功 - 找到过程,正确执行并返回结果 - 那么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连接发送.