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不能同时存在。
分享到:
相关推荐
xml-rpc 学习心得是我自己的学习心得体会。
简单介绍了XML-RPC这种通过HTTP协议进行RPC通信的规范。 以Apache XML-RPC 3.0为基础,对XML-RPC的基本原理及Apache XML-RPC 3.0的主要特性进行了讨论和分析
3.0 XML-RPC
Apache xml-rpc入门详细的描述xmlrpc的开发过程,并带有例子。
XML-RPC客户端测试程序 向XMLRPC服务器发送一个XML-RPC请求,以文本文件读取xml文件; 记录返回的数据到文件中; windows命令行程序,使用前请配置*.pln文件 askcyg@hotmail.com
Version 2.4.0 has been released: xml-rpc.net.2.4.0.zip New feature and fixed issues: New StructParams property on XmlRpcMethodAttribute which provides supports for APIs which use a struct to ...
XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用。 它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。
commons-logging-1.1.jar ws-commons-util-1.0.2.jar xmlrpc-client-3.1.3.jar xmlrpc-common-3.1.3.jar xmlrpc-server-3.1.3.jar
我自己动手写的XML-RPC,最近自己写了写关于大规模分布式只是学习的实验,其中用到了python里面的清凉级
LabVIEW 版 XML_RPC,有7.1,8.0,8.5三个版本。
简单对象访问协议(Simple Object Access Protocol,SOAP)、代表性状态传输(Representational State Transfer,REST)以及 XML 远程过程调用协议(XML Remote Procedure Call,XML-RPC)等 Web 服务协议可帮助将...
xml-rpc 是一套规范及其一系列的实现,允许运行在不同操作系统、不同环境的程序基于internet进行远程过程调用。 这种远程过程调用使用http作为传输协议,xml作为传送信息的编码格式。Xml-Rpc的定义尽可能的保持了...
xml-rpc.js 跨域 JavaScript 的 XML-RPC 库。 基于 Carlos Eduardo Goncalves 最初编写的 Mimic JS 库; 许可证见下文。 为 XML-RPC 提供易于使用的面向对象的接口。 将对象透明地转换为 JS 文字是实用的(例如 ...
xml-rpc.net.3.0.0.270-snapshot,用于c#访问解析XML-RPC
Java RPC通信机制之XML-RPC
此资源不要下载,请下载最新的 最近要用XML-RPC机制实现...下载Delphi XML-RPC 后发现中文字符串会出现乱码,跟踪代码后发现XML-RPC默认的 字符编码是UTF-8,而且QT也都是用UTF-8编程,故把传输字符串改为UTF-8就行了,
apache XML-RPC,开发所需5个jarapache XML-RPC,开发所需5个jar
最近要用XML-RPC机制实现delphi程序与Qt程序之间的通信,从开源网站http://sourceforge.net/projects/delphixml-rpc/下载Delphi XML-RPC 后发现中文字符串会出现乱码,跟踪代码后发现XML-RPC默认的字符编码是UTF-8,...
最近要用XML-RPC机制实现delphi程序与Qt程序之间的通信,从...下载Delphi XML-RPC 后发现中文字符串会出现乱码,跟踪代码后发现XML-RPC默认的 字符编码是UTF-8,而且QT也都是用UTF-8编程,故把传输字符串改为UTF-8就行了。
xml-rpc xml-rpc.net.2.1.0.rar