`
angie_hawk7
  • 浏览: 48207 次
  • 性别: Icon_minigender_1
  • 来自: 乌托邦
社区版块
存档分类
最新评论

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不能同时存在。
分享到:
评论

相关推荐

    xml-rpc学习心得

    ### XML-RPC学习心得 #### 一、XML-RPC简介 XML-RPC(XML Remote Procedure Call)是一种轻量级的远程过程调用协议,它使用XML来编码调用数据,并通过HTTP进行传输。XML-RPC使得运行在不同操作系统上的应用程序...

    Apache的XML-RPC简化你的WebService应用

    XML-RPC利用XML作为数据交换格式,提供了简单、跨平台的RPC解决方案,极大地简化了Web Service的应用开发。这篇博文将深入探讨Apache XML-RPC的原理、使用方法以及它如何简化Web Service应用的构建。 XML-RPC的核心...

    Apache xml-rpc入门

    #### 二、Apache XML-RPC 特性介绍 Apache XML-RPC 是一个基于Java的开源XML-RPC服务器和客户端库。它提供了强大的功能,支持多种数据类型,并能够轻松集成到现有的Java应用程序中。 ##### 1. 数据类型支持 ...

    XML-RPC.rar_python xml rpc_python写xml_xml rpc_xml-rpc python

    在这个"XML-RPC.rar"压缩包中,包含了一系列Python实现的XML-RPC相关文件,包括server.py、readfile.py、client.py和D_H.py,这些都是实现XML-RPC服务端和客户端功能的关键代码。 首先,我们来看`server.py`。这个...

    XML-RPC客户端程序

    XML-RPC客户端测试程序 向XMLRPC服务器发送一个XML-RPC请求,以文本文件读取xml文件; 记录返回的数据到文件中; windows命令行程序,使用前请配置*.pln文件 askcyg@hotmail.com

    xml-rpc.net.3.0

    XML-RPC(XML Remote Procedure Call)是一种基于XML的远程过程调用协议,它允许软件应用程序通过网络进行通信,执行远程服务器上的方法,就像它们在本地机器上运行一样。`xml-rpc.net.3.0` 是一个针对C#开发的XML-...

    2001_Programming Web Services with XML-RPC

    详细介绍了如何使用Java编写XML-RPC客户端,包括设置环境、发送请求以及处理响应的具体步骤。 ##### 4.4 构建XML-RPC服务器 阐述了构建XML-RPC服务器的过程,包括初始化服务器、定义服务方法以及处理客户端请求的...

    xml-rpc.rar_rpc visual basic_vb6 soap webservi_vb6 xml rpc_xml

    本压缩包“xml-rpc.rar”可能包含了一套用于VB6开发的XML-RPC库或示例代码,帮助开发者理解如何在VB6中集成XML-RPC功能。在VB6中实现XML-RPC主要涉及以下几个知识点: 1. **XML基础知识**:XML(Extensible Markup ...

    apache XML-RPC

    Apache XML-RPC(XML Remote Procedure Call)是一种基于XML的远程过程调用协议,它允许不同的计算机之间通过网络进行通信,仿佛它们之间的函数调用一样。这个技术被广泛应用于分布式系统和跨平台通信,尤其是在Java...

    xml-rpc.net.2.1.0.rar

    在.NET环境中,`xml-rpc.net.2.1.0`库提供了一个方便的实现,使开发者能够轻松地构建XML-RPC客户端和服务端应用程序。 XML-RPC的核心概念是将方法调用转换为HTTP请求,并使用XML格式传输参数和返回值。这种简单的...

    Java的XML-RPC函数库源代码

    在Java中,Apache提供了一个名为XML-RPC的库,使得开发人员能够轻松地实现XML-RPC客户端和服务端的功能。这个库的特点是轻量级、易于使用,适合构建分布式系统中的简单通信。 标题"Java的XML-RPC函数库源代码"表明...

    delphi与JSP通过xml-rpc协议交换数据的例子.rar_delphi XML_delphi jsp_delphi rp

    XML-RPC(XML Remote Procedure Call)是一种基于XML的远程过程调用协议,它允许不同的编程语言和操作系统之间进行跨平台的数据交换和远程方法调用。本示例是关于如何在Delphi环境中通过XML-RPC与Java JSP应用程序...

    xml_rpc需要的jar包

    在Java环境中,XML-RPC的实现通常依赖于一些特定的库,如Apache XML-RPC项目提供的组件。在你给出的文件信息中,"xml_rpc"的标签以及提到的三个jar包,揭示了这个压缩包包含的是XML-RPC所需的基础库。 1. **commons...

    XML-RPC 实现C++和C#交互.pdf

    【XML-RPC 实现C++和C#交互】 XML-RPC(XML Remote Procedure Call)是一种简单、跨平台的远程过程调用协议,它利用HTTP作为传输协议,XML作为数据编码方式,使得不同编程语言编写的程序能够进行通信。在本文中,...

    基于XML-RPC和PHP5的WEB服务的研究与实现.pdf

    XML-RPC是一种远程过程调用(RPC)协议,它允许不同的Web服务之间进行交互。PHP5是一种流行的 сервер-side脚本语言,可以用于开发Web服务。 Web服务是一种提供某种功能的程序代码,可以实现不同Web服务之间的...

    xml-rpc.net.2.4.0.zip

    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 ...

    java delphi 互相调用 xml-rpc实例

    XML-RPC(XML Remote Procedure Call)是一种轻量级的远程过程调用协议,它允许不同编程语言编写的系统之间进行通信。在这个实例中,我们将探讨如何使用XML-RPC实现Java与Delphi之间的互相调用,以及提供的源码和可...

    php xml-rpc 协议 非常有用哦

    XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用。  它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。

    PHP中使用XML-RPC构造Web-Service简单入门.doc

    XML-RPC的出现较早,适合于简单、快速的跨平台通信,而SOAP(Simple Object Access Protocol)则更为复杂,提供了更强大的错误处理、安全性以及数据类型支持,适用于需要稳定、健壮环境的场景。 PHP中内置了对XML-...

Global site tag (gtag.js) - Google Analytics