`

利用NuSoap开发WebService(PHP)

阅读更多

NuSoapPHP环境下的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文件。
<?php
    require_once("lib/nusoap.php");
    $server = new soap_server;
    //
避免乱码
    $server->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文件。
<?php
    require_once("lib/nusoap.php");
    /*
       
通过WSDL调用WebService
       
参数1 WSDL文件的地址(问号后的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('sayHello',$paras);
    //检查错误,获取返回值
    if (!$err=$client->getError()) { echo "返回结果:",$result;  }
    else { echo "调用出错:",$err; }
?>
注:nusoap实现WebService,不要开启phpSOAP扩展

转自 http://blog.csdn.net/painstaker/archive/2010/09/08/5870515.aspx

分享到:
评论

相关推荐

    php 利用 nusoap 生成 webservices

    以下将详细讲解如何利用nusoap生成Webservices,以及服务器端和客户端的具体实现。 一、什么是Webservices? Webservices是一种基于互联网的、能够互相交换数据的服务。它们使用开放标准(如XML、SOAP、WSDL和UDDI...

    php webservice

    开发PHP Web Service时,可能会用到一些开源工具和框架,如NuSOAP(一个PHP SOAP库)、WSDL2PHPGenerator(自动生成PHP客户端代码的工具),以及PHPUnit等测试工具。 通过以上介绍,我们可以看到PHP在构建Web ...

    浅谈PHP调用Webservice思路及源码分享

    NuSoap的全部功能都是用PHP编写,这意味着无论你的PHP环境如何,只要支持基本的PHP语法,你都可以利用NuSoap进行Webservice的处理。这对于那些无法修改服务器配置或者受限于特定环境的开发者来说,无疑是一个巨大的...

    C#使用PHP服务端的Web Service.zip

    这通常涉及到开发C#客户端应用程序,利用.NET Framework中的Web服务客户端代理类,来与PHP服务端的SOAP接口进行交互。 描述中提到"采用nusoap.php插件实现",nusoap是一个开源的PHP库,它为PHP开发者提供了构建和...

    Aplica-o-Webservice-para-Meteorologia

    在这个项目中,我们将会深入探讨如何利用PHP这一流行的服务器端脚本语言来开发这样的应用。Web服务通常用于不同系统间的交互,允许应用程序之间共享数据和功能,而PHP因其易学性和强大的网络开发能力,是实现这种...

Global site tag (gtag.js) - Google Analytics