原文:http://blog.csdn.net/painstaker/article/details/5870515
nusoap是php环境下的webservice编程工具,用于创建或调用webservice,是一个开源软件。它完全采用php语言编写、通过http收发soap消息的一系列php类,由nusphere corporation(http://www.nusphere.com/)开发。
它的优势是不需要扩展库的支持,这种特性使它可用于所有的php环境,不受服务器安全设置的影响。
1.首先,去http://sourceforge.net/projects/nusoap/下载nusoap-0.9.5.zip,解压后把lib文件夹放到与你的webservice程序相同的目录,如/webservice/lib。
2.服务端:建立nusoapservice.php文件。
soap_defencoding ='utf-8';
$server->decode_utf8 =false;
$server->xml_encoding ='utf-8';
$server->configurewsdl('sayhello');//打开wsdl支持
/*
注册需要被客户端访问的程序
类型对应值:bool->xsd:boolean string->xsd:string
int->xsd:int float->xsd:float
*/
$server->register('sayhello', //方法名
array(name=>xsd:string), //参数,默认为xsd:string
array(return=>xsd:string) );//返回值,默认为xsd:string
//isset 检测变量是否设置
$http_raw_post_data= isset($http_raw_post_data) ?$http_raw_post_data :'';
//service 处理客户端输入的数据 $server->service($http_raw_post_data);
/**
* 供调用的方法
* @param $name
*/
function sayhello($name) { return hello, {$name}!; }?>注: 1.文件代码不能有任何输出,否则调用时会报类似如下错误:
xml error parsing soap payload on line x(行号): reserved xml name
2.要以utf-8无bom格式保存,不然客户端调用会出错。
3.客户端:建立nusoapclient.php文件。soap_defencoding ='utf-8'; $client->decode_utf8 =false; $client->xml_encoding ='utf-8'; //参数转为数组形式传递 $paras=array('name'=>'bruce lee'); //目标方法没有参数时,可省略后面的参数 $result=$client->call('sayhello',$paras); //检查错误,获取返回值 if (!$err=$client->geterror()) { echo 返回结果:,$result; } else { echo 调用出错:,$err; }?>
注:用nusoap实现webservice,不要开启php的soap扩展
以上就介绍了php nusoap 创建和调用webservice,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。