利用NuSoap开发WebService(PHP)

本文详细介绍使用NuSoap库在PHP环境下搭建WebService的过程,包括服务端与客户端的配置及调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用NuSoap开发WebService(PHP)
标签: webservicephpsoapstringencodingparsing
7614人阅读 评论(2) 收藏 举报
本文章已收录于:
分类:

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扩展

0
0
 
 
我的同类文章
http://blog.youkuaiyun.com

参考知识库

更多资料请参考:
猜你在找
PHP操作xml视频教程
从此不求人:自主研发一套PHP前端开发框架
PHP与Web开发全程导学(第1部分)
php+html5开发涂鸦爱情墙
ArcGIS for JavaScript
php使用NuSoap调用javaC# webservice的中文乱码问题
PHP调用Webservice-NuSoap实例
webServicephp的soap与nusoap服务端与客户端的通信
关于PHP的使用NuSoap来架设soap服务webservice
php 的webservice类库NuSoap介绍
查看评论
2楼 hema1515 2015-11-17 03:41发表 [回复] [引用] [举报]
定义头部编码
1楼 fchenlun 2011-05-18 10:36发表 [回复] [引用] [举报]
JAVA调用的时候中文参数出乱码了,如何解决哦?帮帮忙。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值