`
angie_hawk7
  • 浏览: 48118 次
  • 性别: 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不能同时存在。
分享到:
评论

相关推荐

    LabVIEW XML-RPC

    LabVIEW XML-RPC 是一种基于XML的远程过程调用(RPC)技术,它允许LabVIEW应用程序与其他支持XML-RPC协议的系统进行通信。这个技术在跨平台交互和分布式系统开发中发挥着重要作用,使得LabVIEW可以与不同编程语言...

    xml-rpc学习心得

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

    3.0 XML-RPC 官方示例+源码+官网地址资料.rar

    在3.0版本中,XML-RPC进一步提升了性能和安全性,使其成为分布式应用程序之间交互的一种实用方式。 XML-RPC的核心思想是简单:一个客户端通过发送一个包含方法名和参数的XML文档到服务器,服务器解析这个请求,执行...

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

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

    使用 XML-RPC 为 C++ 应用程序启用 Web 服务

    **使用 XML-RPC 为 C++ 应用程序启用 Web 服务** 随着互联网的普及,越来越多的开发人员和 IT 部门开始考虑将复杂的 C++ 业务和科学应用程序迁移到基于 Web 的环境。Web 服务协议如 SOAP、REST 和 XML-RPC 提供了将...

    Apache xml-rpc入门

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

    XML-RPC.rar_HTTP协议_XML-R_XML-RPC _xml rpc

    简单介绍了XML-RPC这种通过HTTP协议进行RPC通信的规范。 以Apache XML-RPC 3.0为基础,对XML-RPC的基本原理及Apache XML-RPC 3.0的主要特性进行了讨论和分析

    XML-RPC客户端程序

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

    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格式传输参数和返回值。这种简单的...

    xml-rpc协议资料

    ### XML-RPC协议详解 #### 一、XML-RPC简介 **XML-RPC**(XML Remote Procedure Call)是一种轻量级的远程过程调用协议,它允许不同操作系统、不同环境中的程序通过Internet进行通信。XML-RPC使用HTTP作为传输协议...

    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和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之间的互相调用,以及提供的源码和可...

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

    【XML-RPC 实现C++和C#交互】 XML-RPC(XML Remote Procedure Call)是一种简单、轻量级的远程过程调用协议,允许不同编程语言编写的应用程序之间进行通信。这种技术基于HTTP协议,使用XML来编码调用的参数和返回...

    XML-RPC实现WebService示例InterFace程序.rar

    目前进行Web Service通信有两种协议标准,一种是XML-RPC,另外一种是SOAP。XML-RPC比较简单,出现时间比较早,SOAP比较复杂,主要是一些需要稳定、健壮、安全并且复杂交互的时候使用。 PHP中集成了XML-RPC和SOAP两种...

    [其他类别]xml-rpc协议 2.2_xmlrpc-2.2.zip

    在"xml-rpc-2.2.zip"这个压缩包中,可能包含的是XML-RPC协议2.2版本的相关资料和库文件,用于理解和应用XML-RPC技术。 XML-RPC的基本工作原理是这样的: 1. **请求构造**:客户端将方法名和参数封装成一个XML文档...

    Android使用XML-RPC实现blog客户端源码

    在Android开发中,XML-RPC库可以帮助开发者实现客户端与服务器之间的通信,比如发布博客、获取博客列表等操作。本项目是一个Android应用,它演示了如何使用XML-RPC技术实现对CSDN博客的客户端功能。 1. **Android...

Global site tag (gtag.js) - Google Analytics