You are here

XML-RPC 客户端例子:获取时间

g089h515r806 的头像
Submitted by g089h515r806 on 星期三, 2009-08-26 15:31

在网站http://www.xmlrpc.com上可以看到XML-RPC说明,它同时也带有了一些可用于测试的例子。在我们的第一个例子中,让我们通过XML-RPC来向该站点请求当前时间:

 
 
    在这里你调用了Drupal的xmlrpc()函数,告诉它链接到服务器time.xmlrpc.com,并且路径为RPC2,请求服务器端执行一个名为currentTime.getCurrentTime()的方法。在这一调用中,你没有使用任何参数。Drupal将其转化为一个如下所示的HTTP请求:
 
POST /RPC2 HTTP/1.0
Host: time.xmlrpc.com
User-Agent: Drupal (+http://drupal.org/)
Content-Length: 118
Content-Type: text/xml
 
<?xml version="1.0"?>
<methodCall>
<methodName>currentTime.getCurrentTime</methodName>
<params></params>
</methodCall>
 
服务器端time.xmlrpc.com非常高兴的执行该函数,并为你返回如下所示的响应:
 
HTTP/1.1 200 OK
Connection: close
Content-Length: 183
Content-Type: text/xml
Date: Wed, 23 Apr 2008 16:14:30 GMT
Server: UserLand Frontier/9.0.1-WinNT
 
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value>
<dateTime.iso8601>20080423T09:14:30</dateTime.iso8601>
</value>
</param>
</params>
</methodResponse>
 
当响应返回后,Drupal解析它,将其识别为一个简单的采用ISO8601国际日期格式的值,并将此值分配给变量$time. Drupa不仅返回了ISO8601格式的时间,并且还包括时间的组成部分比如年,月,日,小时,分钟,和秒。具有这些属性的对象被赋值给$time变量,如图19-1所示。
 
19-1. XML-RPC调用的结果,获取了当前时间
 
 在这里有几个要点需要注意:
    你调用一个远程服务器,接着它响应你。
    请求和响应都是通过XML来描述的。
    你使用了xmlrpc()函数,里面包含一个URL和要调用的远程过程的名字。
    返回给你的值将作为一个特定数据类型来标记。
    Drupal自动识别该数据类型并解析响应。
    你仅用一行代码就搞定了一切。

老葛的Drupal培训班 Think in Drupal

Drupal版本: