Chinaunix首页 | 论坛 | 博客
  • 博客访问: 607121
  • 博文数量: 129
  • 博客积分: 8026
  • 博客等级: 中将
  • 技术积分: 1300
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-21 14:39
文章分类

全部博文(129)

文章存档

2011年(1)

2007年(26)

2006年(102)

我的朋友

分类:

2006-06-12 15:43:14

构建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) |
给主人留下些什么吧!~~