XML-RPC

XML-RPC

xml-rpc是一个remote procedure call(RPC)协议,它使用XML来编码protocol并且使用HTTP作为传输机制。"xml-rpc"也指用独立于特定的协议使用XML做remote procedure call。本文是关于协议的xml-rpc"。

Usage

XML-RPC通过向服务器发送一个HTTP请求实现protocol。在这种情况下,通常是客户端软件想调用一个远程系统的方法。可以传递给远程方法多个输入参数,返回一个返回值。参数的类型允许嵌套到maps和lists,因此可以传输较大的结构。所以,可以使用xml-rpc来把objects或structures当做输入和输出参数传输。

识别授权客户可以通过使用流行的HTTP安全方法。基本身份验证的访问是用于识别,HTTPS是识别时使用(通过证书)和加密的邮件需要。这两种方法可以结合起来。

与REST相比,resource是representations (文档)的传输,xml-rpc是为了调用方法。

xml-rpc比SOAP更容易使用和理解,因为:

  • 只允许一个方法序列化的方法,而SOAP定义多个不同的编码
  • 有一个简单的安全模型
  • 不需要(也不支持)创建WSDL服务描述,虽然XRDL提供了一个简单的WSDL提供的功能子集

json-rpc类似xml-rpc。

Data types

常见的数据类型转换为XML实例的值如下所示:
Name Tag Example Description
array
<array>
  <data>
    <value><i4>1404</i4></value>
    <value><string>Something here</string></value>
    <value><i4>1</i4></value>
  </data>
</array>
Array of values, storing no keys
base64
<base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64>
Base64-encoded binary data
boolean
<boolean>1</boolean>
Boolean logical value (0 or 1)
date/time
<dateTime.iso8601>19980717T14:08:55</dateTime.iso8601>
Date and time in ISO 8601 format
double
<double>-12.53</double>
Double precision floating point number
integer
<int>42</int>

or

<i4>42</i4>
Whole number, integer
string
<string>Hello world!</string>

or

Hello world!
String of characters. Must follow 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>
Associative array
nil
<nil/>
Discriminated null value; an XML-RPC extension



你可能感兴趣的:(XML-RPC)