让我们尝试一个稍微复杂的例子。它仅仅复杂了一点点,因为你不但发送了你所调用的远程方法的名称,而且还包括了一个参数。UserLand软件在站点betty.userland.com运行了一个web服务:它将50个美国的州以字母顺序排列。所以如果你请求第1个州,它返回Alabama。第50个州为Wyoming。方法的名称为examples.getStateName。让我们向它请求列表中的第3个州:
$state_name = xmlrpc('http://betty.userland.com/RPC2', 'examples.getStateName', 3);
它将$state_name设置为Arizona.下面是Drupal发送的XML(为了简洁,从这里起我们省略了HTTP头部)
<?xml version="1.0"?>
examples.getStateName
3
下面是你从betty.userland.com获得的相应:
<?xml version="1.0"?>
Arizona
注意,Drupal能够自动的识别你传递的参数是一个整数,并在你的请求中以此来对它编码。但是在响应中发生了什么呢?在返回值的周围没有使用任何类型标签。难道不是这种形式么Arizona?是的,这个也能工作。不过在XML-RPC中,一个没有类型的值将被默认为字符串类型,这样更简洁。
在Drupal中,进行一个XML-RPC客户端调用是非常简单的。仅用一行代码:
$result = xmlrpc($url, $method, $param_1, $param_2, $param_3...)
本文转载自:zhupou.cn


user 发表于 2009-06-24 06:04