微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

利用NuSoap开发WebService(PHP)

http://blog.csdn.net/painstaker/article/details/5870515

NuSoapPHP环境下的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;
    @H_502_116@//
避免乱码
    $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文件的地址(问号后的不能为大写)
       
指定是否使用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,不要开启PHPSOAP扩展利用NuSoap开发WebService(PHP)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐