您好,欢迎访问一九零五行业门户网

php nusoap 创建和调用webservice

原文: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教程有兴趣的朋友有所帮助。
其它类似信息

推荐信息