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更容易使用和理解,因为:
json-rpc类似xml-rpc。
Data types
常见的数据类型转换为XML实例的值如下所示:Name | Tag Example | Description |
---|---|---|
array |
<array> <data> <value><i4>1404</i4></value> <string>Something here</string><i4>1</value> </data> </array> |
Arrayof values,storing no keys |
base64 | <base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64> | Base64-encoded binary data |
boolean | <boolean>1</boolean> | Booleanlogical value (0 or 1) |
date/time | <dateTime.iso8601>19980717T14:08:55</dateTime.iso8601> | Date and time inISO 8601format |
double | <double>-12.53</double> | Double precisionfloating 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 followXML encoding. |
struct | <struct> <member> <name>foo</name> </member> <name>bar<i4>2</member> </struct> | Associative array |
nil | <nil/> | Discriminated null value; an XML-RPCextension |