构建server端的步骤
1.构造对象的两种方法
//使用wsdl传递,$options为参数
$server = new SoapServer('path/to/wsdl,$options);
//使用uri传递,第一参数设为null
$server = new SoapServer(null,
array(
'uri'=>'',
'encoding'=>'utf-8'
)
);
//第二参数必须指定uri(本文件url路径),建议指定编码为utf8
2.加入函数或类
$server -> addFunction('myfunc1');
$server -> addFunction(array('myfunc1', 'myfunc2'));//加入多个
$server -> setClass('myClass',"tim");
//其中第一参数为类名,根椐类构造函数参数不同,可以传递第二及更多的参数
3、开始侦听请求
$server -> handle();
注意:
1)函数及类两者只能用其一,不可同时使用
2)函数或类的方法中使用return返回处理结果,输出函数(echo等)结果不可见
客户端调用
try{
$client = new SoapClient(null,
array(
'location'=>"
'uri'=>''
)
);
//$client = new SoapClient('path/to/wsdl',$option);
//以上分别对应服务器商使用wsdl或uri方式时的构造,使用uri时,必须指定location(服务器端url)及uri(客户端url)
$re = $client->__soapCall('classFunc3',array('中国'));
//调用服务器注册函数,类方法的调用方法一样,第二参数必填,如果方法不需传递参数,则设为array();
//也可以直接调用,如下
//echo $client->classFunc3('中国');
} catch (SOAPFault $f) {
echo 'error:'.$f -> faultstring; //打印错误信息
// var_dump($client->__getLastRequest());
}
?>
提醒:如果返回中文字串,最好使用utf-8编码.
阅读(2878) | 评论(0) | 转发(0) |