首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

XML-RPC引见(转载)

2012-09-27 
XML-RPC介绍(转载)XMLRPC协议中文说明xmlrpcxmlrpc是一个基于Internet的远程过程调用协议。它主要通过消息(

XML-RPC介绍(转载)
XMLRPC协议中文说明
xmlrpc



xmlrpc是一个基于Internet的远程过程调用协议。

它主要通过消息(Message)调用工作,基于HTTP-POST,Message的Body部分是XML格式,同样当结果返回的时候也是XML格式。过程的参数可以是基本变量(Scalar),还可以是一个结构(struct)或者是一个数组(array)。



一个调用实例:

POST /RPC2 HTTP/1.0

User-Agent: Frontier/5.1.2 (WinNT)

Host: betty.userland.com

Content-Type: text/xml

Content-length: 181



<?xml version="1.0"?>

<methodCall>

<methodName>examples.getStateName</methodName>

<params>

<param>

<value><i4>41</i4></value>

</param>

</params>

</methodCall>



调用头部说明

User-Agent和Host是必须的。

Content-Type是text/xml.

Content-Length必须提供,而且必须是正确的!



Body部分说明:

首先可以看到是一个XML格式的文本。主体部分是一个methodCall元素,包含着方法名称(MethodName)及其调用参数(params)。

<param>的<value>部分,XMLPRC支持的类型有下列几种:

1、变量(Scalar)<value>类型:

<value>里面可以包含的类型有;

类型 说明 实例

<i4>或者<int> 整数 -12

<boolean> 0(false),1(true)

<string> 字符串 hello world

<double> 浮点数 -12.123

<dateTime.iso8601> 时间 19980717T14:08:55

<base64> base64编码 eW91IGNhbid0IHJlYWQgdGhpcyE=

缺省类型是string.

2、<struct>s

<struct>类型包含若干个<member>,每一个<member>包含<name>和<value>.

实例:

<struct>

<member>

<name>lowerBound</name>

<value><i4>18</i4></value>

</member>

<member>

<name>upperBound</name>

<value><i4>139</i4></value>

</member>

</struct>

3、<array>s

<array>包含若干个<data>,每一个<data>可以包含若干个<value>。

实例:

<array>

<data>

<value><i4>12</i4></value>

<value><string>Egypt</string></value>

<value><boolean>0</boolean></value>

<value><i4>-31</i4></value>

</data>

</array>



XMLRPC的基本类型就是上面这些。



一个响应的例子:

HTTP/1.1 200 OK

Connection: close

Content-Length: 158

Content-Type: text/xml

Date: Fri, 17 Jul 1998 19:55:08 GMT

Server: UserLand Frontier/5.1.2-WinNT



<?xml version="1.0"?>

<methodResponse>

<params>

<param>

<value><string>South Dakota</string></value>

</param>

</params>

</methodResponse>



例子说明:

1、如果调用成功:

返回必须是200 OK;

Content-Type是text/xml.

Content-Length也是必须的,而且必须是正确的!

主体部分是一个methodResponse元素,包含着返回参数(params)及其类型。

2、如果调用不成功

主体部分是一个methodResponse元素,包含着一个<fault>及其原因<value>,原因是一个<struct>,里面包含错误号(faultCode)和错误原因(faultString)。

譬如:

HTTP/1.1 200 OK

Connection: close

Content-Length: 426

Content-Type: text/xml

Date: Fri, 17 Jul 1998 19:55:02 GMT

Server: UserLand Frontier/5.1.2-WinNT



<?xml version="1.0"?>

<methodResponse>

<fault>

<value>

<struct>

<member>

<name>faultCode</name>

<value><int>4</int></value>

</member>

<member>

<name>faultString</name>

<value><string>Too many parameters.</string></value>

</member>

</struct>

</value>

</fault>

</methodResponse>

3、params和fault不能同时存在。

热点排行