‘’
三、xml_rpc协议
完整的xml_rpc规范可以在http://www.xmlrpc.com/spec找到。下面是其要点说明。
xml_rpc请求
xml_rpc请求应该是http post请求,它的正文是xml格式。请求的xml部分格式如下:
<?xml version="1.0" ?>
<methodcall>
<methodname>examples.getstatename</methodname>
<params>
<param>
<value><i4>41</i4></value>
</param>
</params>
</methodcall>
|
指定数据发送到哪里的url并未在这里指定。如果服务器专门用来进行rpc处理,它可能是“/”。上述xml文档中的有效载荷是一个“methodcall”结构。methodcall必须包含一个“methodname”子元素,“methodname”子元素包含一个描述待调用方法的字符串。如何解释“methodname”的内容完全由服务器决定,例如它可以是一个执行文件的名字,可以是数据库中记录的名字,或者任何其他东西。如果过程接收参数,“methodcall”可以包含一个“params”元素以及若干个“param”子元素。每一个“param”元素包含一个带有类型描述符的值,类型描述符如下表所示:
标记说明
<i4>或<int> 四字节的带符号整数,如12 <boolean> 0(false),或1(true) <string> 字符串,如“hello world” <double> 双精度带符号浮点数,如-12.214 <datetime.iso8601> 日期/时间,如19980717t14:08:55 <base64> base64编码的二进制数据,如ew91igbid0ihjlqgdghpcye
结构
值可以是一个结构,结构用元素描述。每个包含多个,每个包含一个和一个。下面是一个由两个元素构成的结构:
<struct>
<member>
<name>name</name>
<value><string>member1</string></value>
</member>
<member>
<name>member2</name>
<value><i4>19</i4></value>
</member>
</struct>
|
可以嵌套,任意可以包含或者任意其它类型,包括。
数组
值可以是数组类型,数组用元素描述。每个元素包含一个元素,元素里面可以包含任意多个元素。下面是数组元素的一个例子:
<array>
<data>
<value><boolean>0</boolean></value>
<value><i4>9</i4></value>
<value><string>hello</string></value>
</data>
</array>
|
元素没有名字。如前例所示,元素的值可以是各种类型。元素可以嵌套,任何都可以包含或者其他类型,如上面介绍的。
xml_rpc应答
xml_rpc应答是一个http应答,内容类型是text/xml。应答正文的格式如下:
<?xml version="1.0"?>
<methodresponse>
<params>
<param>
<value><string>abcdefg</string></value>
</param>
</params>
</methodresponse>
|
(责任编辑:admin)
|