服务端程序代码
require_once('tool/nusoap/lib/nusoap.php');
//初始化服务对象 , 这个对象是类 soap_server 的一个实例
$server = new soap_server;
//调用服务对象的 register 方法注册需要被客户端访问的程序。 //只有注册过的程序,才能被远程客户端访问到.
$server->register('hello'); $server->register('getName');
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
//最后一步,把客户端通过 post 方式提交的数据,传递给服务对象的 service 方法。
//service 方法处理输入的数据,调用相应的函数或方法,并且生成正确的反馈,传回给客户端。
$server->service($HTTP_RAW_POST_DATA);
//注册方法的实现,有参数
function hello($name, $password){
if($password == 'lory' && $name == 'lory'){ return 'Welcome lory, how are you?'; }else{return 'Go away!!!';}
}
//注册方法的实现,无参数
function getName(){
return 'lory';
}
exit();
?>
//客服端程序代码
//把 NuSOAP 的源文件包含到当前的代码文件里
require_once('tool/nusoap/lib/nusoap.php');
//初始化客户端对象,这个对象是类 soapclient 的一个实例,//把服务程序的 URL 地址传递给soapclient类的构造函数。
$client = new soapclient('http://192.168.0.101/serverSoap.php'); //参数
$parameters = array('lory','lory');
//利用客户端对象的 call 方法调用 WEB 服务的程序
//客户端对象的 getError() 方法可以用来检查调用过程是否出现错误。
//如果没有错误, getError() 方法返回 false ;如果有错误, getError()方法返回错误信息。
if (!$err=$client->getError()){
echo $client->call('getName');
echo "
";
echo $client->call('hello', $parameters);
}else{
echo " error :",htmlentities($err,ENT_QUOTES);
}
exit();
?>
//客户端正确输出结果:
lory Welcome lory, how are you?