http://blog.csdn.net/painstaker/article/details/5870515
NuSoap是PHP环境下的WebService编程工具,用于创建或调用,是一个开源软件。它完全采用语言编写、通过HTTP收发SOAP消息的一系列类,由NuSphere Corporation(http://www.nusphere.com/)开发。
它的优势是不需要扩展库的支持,这种特性使它可用于所有的环境,不受服务器安全设置的影响。
1.首先,去http://sourceforge.net/projects/nusoap/下载nusoap-0.9.5.zip,解压后把lib文件夹放到与你的程序相同的目录,如/WebService/lib。
2.服务端:建立nusoapService.php文件。
<?php
????require_once("lib/nusoap.php");
????$server?=?new?soap_server;
????//避免乱码
????$server->soap_defencoding =?'UTF-8';
????$server->decode_utf8 =?false;
????$server->xml_encoding =?$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文件。
<?php
????require_once("lib/nusoap.php");
????/*
???????通过WSDL调用WebService
???????参数1 WSDL文件的地址(问号后的不能为大写)
???????2?指定是否使用WSDL??
???????$client = new soapclient('http://localhost/WebService/nusoapService.php?wsdl',true);
???????*/
????$client?=?new?soapclient('http://localhost/WebService/nusoapService.php');
????$client->soap_defencoding =?'UTF-8';
????$client->decode_utf8 =?false;
????$client->xml_encoding =?'UTF-8';
????参数转为数组形式传递$paras=array('name'=>'Bruce Lee');
????目标方法没有参数时,可省略后面的参数$result=$client->call($paras);
????检查错误,获取返回值
????if?(!$err=$client->getError()) {?echo?"返回结果:",0); font-size:10pt">$result;??}
????else?{?echo?调用出错:$err; }
?>
注:用nusoap实现WebService,不要开启php的SOAP扩展利用NuSoap开发WebService(PHP)