fbpx
维基百科

XML-RPC

XML-RPC是一個远程过程调用Remote Procedure Call,RPC)的分布式计算協議,通过XML将调用函数封装,並使用HTTP协议作為傳送機制。[1]

歷史

XML-RPC發表於1998年,由UserLand Software(UserLand Software英语UserLand Software)的Dave Winer及Microsoft共同發表[2]。後來在新的功能不斷被引入下,這個標準慢慢演變成為今日的SOAP協定。

XML-RPC協定是已登記的專利項目,由Phillip Merrick、Stewart Allen及Joseph Lapp共同持有,於1998年3月提出申請,指其將用於一個構想中的應用程式,並於2006年4月獲得接納。現時這個專利由位於美國維珍尼亞州費爾法克斯的webMethods使用[3]

用法

XML-RPC透過向裝置了這個協定的伺服器發出HTTP請求。發出請求的用戶端一般都是需要向遠端系統要求呼叫的軟件。

JSON-RPCJSON-RPC)跟 XML-RPC 相類似。

数据类型

以下的例子為日常的数据类型在轉化為等同的XML後的面貌:

名稱 標記範例 描述
array
<array> <data> <value><i4>1404</i4></value> <value><string>Something here</string></value> <value><i4>1</i4></value> </data> </array> 
base64
<base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64> 
boolean
<boolean>1</boolean> 
布尔型邏輯值 (0 或 1)
date/time
<dateTime.iso8601>19980717T14:08:55</dateTime.iso8601> 
double
<double>-12.53</double> 
雙倍精確浮點數
integer
<i4>42</i4> 

or

<int>42</int> 
整數
string
<string>Hello world!</string> 
字符串,必須遵守XML encoding(XML encoding)的格式。
struct
<struct> <member> <name>foo</name> <value><i4>1</i4></value> </member> <member> <name>bar</name> <value><i4>2</i4></value> </member> </struct> 
结构体
nil
<nil/> 

範例

以下為一個尋常的 XML-RPC 請求的範例:

<?xml version="1.0"?> <methodCall> <methodName>examples.getStateName</methodName> <params> <param> <value><i4>40</i4></value> </param> </params> </methodCall> 

相對於上述請求,以下為一個尋常回應的範例:

<?xml version="1.0"?> <methodResponse> <params> <param> <value><string>South Dakota</string></value> </param> </params> </methodResponse> 

以下為一個尋常的 XML-RPC 錯誤:

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

批評

实现

Python

  • Creating XML-RPC Servers and Clients with Twisted (页面存档备份,存于互联网档案馆

C++

Objective-C / GNUstep / Cocoa

  • XMLRPC Framework (页面存档备份,存于互联网档案馆
  • Cocoa XML-RPC Framework (页面存档备份,存于互联网档案馆): Open Source XML-RPC framework written for use in Mac OS X Cocoa applications.

Erlang

  • : This is an HTTP 1.1 compliant XML-RPC library for Erlang. It is designed to make it easy to write XML-RPC Erlang clients and/or servers. The library is compliant with the XML-RPC specification published by

Java

  • Apache XML-RPC (页面存档备份,存于互联网档案馆): Open source library for Java
  • XML-RPC Delight (页面存档备份,存于互联网档案馆): Convenient serialisation/deserialisation for Apache XML-RPC using Java Annotations and Beans
  • : Secure Apache XML-RPC
  • Redstone XML-RPC Library (页面存档备份,存于互联网档案馆): Redstone's Open Source Library - XML-RPC implementation in Java
  • XML-RPC Library for Java ME (页面存档备份,存于互联网档案馆): Open source client-side library for Java ME

XMPP

Other

  • JSON/XML-RPC Client and Server (页面存档备份,存于互联网档案馆): Abstract away the differences between JSON-RPC and XML-RPC
  • RemObjects SDK (页面存档备份,存于互联网档案馆) Delphi and .NET package for XML-RPC, in addition to SOAP and others
  • RealThinClient SDK (页面存档备份,存于互联网档案馆): For Delphi/C++
  • XML::RPC (页面存档备份,存于互联网档案馆): Perl module implementation
  • XML-RPC for ActionScript (页面存档备份,存于互联网档案馆): For Flash ActionScript 2.0
  • as3-rpclib (页面存档备份,存于互联网档案馆): For Flex/Actionscript 3
  • : Open source library for .NET clients and servers
  • XmlRpc-Light (页面存档备份,存于互联网档案馆): Client and server library for OCaml
  • S-XML-RPC (页面存档备份,存于互联网档案馆): Client and server library for Common Lisp
  • PHP-XML-RPC (页面存档备份,存于互联网档案馆): For PHP
  • : Client and server library for Haskell
  • : For PHP and Javascript
  • : For Ruby
  • : For Lua
  • android-xmlrpc (页面存档备份,存于互联网档案馆): A light XML-RPC client for Google Android
  • XML-RPC for Tcl (页面存档备份,存于互联网档案馆): A Tcl implementation of XML-RPC providing client and server support
  • [2] (页面存档备份,存于互联网档案馆): RebXR, a full client/server XML-RPC implementation for REBOL.

參看

參考資料

  1. ^ Simon St. Laurent, Joe Johnston, Edd Dumbill. Programming Web Services with XML-RPC. First Edition. O'Reilly. 2001-06. 
  2. ^ Box, Don. . O'Reilly. 2001-04-01 [2008-10-09]. (原始内容存档于2008-09-15). 
  3. ^ Merrick; et al. . 2006-04-11 [2008-09-18]. (原始内容存档于2011-12-03). 

外部連結

是一個远程过程调用, remote, procedure, call, 的分布式计算協議, 通过xml将调用函数封装, 並使用http协议作為傳送機制, 目录, 歷史, 用法, 数据类型, 範例, 批評, 实现, python, objective, gnustep, cocoa, erlang, java, xmpp, other, 參看, 參考資料, 外部連結歷史, 编辑發表於1998年, 由userland, software, userland, software, 英语, userland, softwa. XML RPC是一個远程过程调用 Remote Procedure Call RPC 的分布式计算協議 通过XML将调用函数封装 並使用HTTP协议作為傳送機制 1 目录 1 歷史 2 用法 3 数据类型 4 範例 5 批評 6 实现 6 1 Python 6 2 C 6 3 Objective C GNUstep Cocoa 6 4 Erlang 6 5 Java 6 6 XMPP 6 7 Other 7 參看 8 參考資料 9 外部連結歷史 编辑XML RPC發表於1998年 由UserLand Software UserLand Software 英语 UserLand Software 的Dave Winer及Microsoft共同發表 2 後來在新的功能不斷被引入下 這個標準慢慢演變成為今日的SOAP協定 XML RPC協定是已登記的專利項目 由Phillip Merrick Stewart Allen及Joseph Lapp共同持有 於1998年3月提出申請 指其將用於一個構想中的應用程式 並於2006年4月獲得接納 現時這個專利由位於美國維珍尼亞州費爾法克斯的webMethods使用 3 用法 编辑XML RPC透過向裝置了這個協定的伺服器發出HTTP請求 發出請求的用戶端一般都是需要向遠端系統要求呼叫的軟件 JSON RPC JSON RPC 跟 XML RPC 相類似 数据类型 编辑以下的例子為日常的数据类型在轉化為等同的XML後的面貌 名稱 標記範例 描述array lt array gt lt data gt lt value gt lt i4 gt 1404 lt i4 gt lt value gt lt value gt lt string gt Something here lt string gt lt value gt lt value gt lt i4 gt 1 lt i4 gt lt value gt lt data gt lt array gt base64 lt base64 gt eW91IGNhbid0IHJlYWQgdGhpcyE lt base64 gt boolean lt boolean gt 1 lt boolean gt 布尔型邏輯值 0 或 1 date time lt dateTime iso8601 gt 19980717T14 08 55 lt dateTime iso8601 gt double lt double gt 12 53 lt double gt 雙倍精確浮點數integer lt i4 gt 42 lt i4 gt or lt int gt 42 lt int gt 整數string lt string gt Hello world lt string gt 字符串 必須遵守XML encoding XML encoding 的格式 struct lt struct gt lt member gt lt name gt foo lt name gt lt value gt lt i4 gt 1 lt i4 gt lt value gt lt member gt lt member gt lt name gt bar lt name gt lt value gt lt i4 gt 2 lt i4 gt lt value gt lt member gt lt struct gt 结构体nil lt nil gt 範例 编辑以下為一個尋常的 XML RPC 請求的範例 lt xml version 1 0 gt lt methodCall gt lt methodName gt examples getStateName lt methodName gt lt params gt lt param gt lt value gt lt i4 gt 40 lt i4 gt lt value gt lt param gt lt params gt lt methodCall gt 相對於上述請求 以下為一個尋常回應的範例 lt xml version 1 0 gt lt methodResponse gt lt params gt lt param gt lt value gt lt string gt South Dakota lt string gt lt value gt lt param gt lt params gt lt methodResponse gt 以下為一個尋常的 XML RPC 錯誤 lt xml version 1 0 gt lt methodResponse gt lt fault gt lt value gt lt struct gt lt member gt lt name gt faultCode lt name gt lt value gt lt int gt 4 lt int gt lt value gt lt member gt lt member gt lt name gt faultString lt name gt lt value gt lt string gt Too many parameters lt string gt lt value gt lt member gt lt struct gt lt value gt lt fault gt lt methodResponse gt 批評 编辑实现 编辑Python 编辑 xmlrpclib Renamed xmlrpc client 页面存档备份 存于互联网档案馆 in Python 3 Creating XML RPC Servers and Clients with Twisted 页面存档备份 存于互联网档案馆 C 编辑 Libiqxmlrpc 页面存档备份 存于互联网档案馆 Ultra lightweight XML RPC library for C 页面存档备份 存于互联网档案馆 XML RPC for C and C 页面存档备份 存于互联网档案馆 XmlRpc 页面存档备份 存于互联网档案馆 XmlRpc C client for Windows 页面存档备份 存于互联网档案馆 gSOAP toolkit for C and C supporting XML RPC and more 页面存档备份 存于互联网档案馆 libmaia XML RPC for Qt C 页面存档备份 存于互联网档案馆 Objective C GNUstep Cocoa 编辑 XMLRPC Framework 页面存档备份 存于互联网档案馆 Cocoa XML RPC Framework 页面存档备份 存于互联网档案馆 Open Source XML RPC framework written for use in Mac OS X Cocoa applications Erlang 编辑 XML RPC for Erlang This is an HTTP 1 1 compliant XML RPC library for Erlang It is designed to make it easy to write XML RPC Erlang clients and or servers The library is compliant with the XML RPC specification published by https web archive org web 20051210031514 http www xmlrpc org Java 编辑 Apache XML RPC 页面存档备份 存于互联网档案馆 Open source library for Java XML RPC Delight 页面存档备份 存于互联网档案馆 Convenient serialisation deserialisation for Apache XML RPC using Java Annotations and Beans 1 Secure Apache XML RPC Redstone XML RPC Library 页面存档备份 存于互联网档案馆 Redstone s Open Source Library XML RPC implementation in Java XML RPC Library for Java ME 页面存档备份 存于互联网档案馆 Open source client side library for Java MEXMPP 编辑 pyJabberXMLRPC 页面存档备份 存于互联网档案馆 Python classes for XMPP Jabber RPC 页面存档备份 存于互联网档案馆 Over the Extensible Messaging and Presence Protocol protocolOther 编辑 JSON XML RPC Client and Server 页面存档备份 存于互联网档案馆 Abstract away the differences between JSON RPC and XML RPC RemObjects SDK 页面存档备份 存于互联网档案馆 Delphi and NET package for XML RPC in addition to SOAP and others RealThinClient SDK 页面存档备份 存于互联网档案馆 For Delphi C XML RPC 页面存档备份 存于互联网档案馆 Perl module implementation XML RPC for ActionScript 页面存档备份 存于互联网档案馆 For Flash ActionScript 2 0 as3 rpclib 页面存档备份 存于互联网档案馆 For Flex Actionscript 3 XML RPC NET Open source library for NET clients and servers XmlRpc Light 页面存档备份 存于互联网档案馆 Client and server library for OCaml S XML RPC 页面存档备份 存于互联网档案馆 Client and server library for Common Lisp PHP XML RPC 页面存档备份 存于互联网档案馆 For PHP HaXR Client and server library for Haskell xi library with PHP and Javascript XML RPC For PHP and Javascript Ruby XML RPC library For Ruby XML RPC interface to Lua For Lua android xmlrpc 页面存档备份 存于互联网档案馆 A light XML RPC client for Google Android XML RPC for Tcl 页面存档备份 存于互联网档案馆 A Tcl implementation of XML RPC providing client and server support 2 页面存档备份 存于互联网档案馆 RebXR a full client server XML RPC implementation for REBOL 參看 编辑AJAX Component technologies List of Web service markup languages OPML Web服務參考資料 编辑 Simon St Laurent Joe Johnston Edd Dumbill Programming Web Services with XML RPC First Edition O Reilly 2001 06 引文格式1维护 冗余文本 link Box Don A Brief History of SOAP O Reilly 2001 04 01 2008 10 09 原始内容存档于2008 09 15 Merrick et al US Patent 7 028 312 2006 04 11 2008 09 18 原始内容存档于2011 12 03 引文格式1维护 显式使用等标签 link 外部連結 编辑XML RPC Homepage 页面存档备份 存于互联网档案馆 Forum 页面存档备份 存于互联网档案馆 Tutorials Technology Reports 页面存档备份 存于互联网档案馆 Citations from CiteSeer 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title XML RPC amp oldid 71704296, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。