加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

利用NuSoap开发WebService(PHP)

发布时间:2020-12-16 23:52:54 所属栏目:安全 来源:网络整理
导读:NuSoap 是 PHP 环境下的 WebService 编程工具,用于创建或调用 ,是一个开源软件。它完全采用 语言编写、通过 HTTP 收发 SOAP 消息的一系列 类,由 NuSphere Corporation( http://www.nusphere.com/ ) 开发。 它的 优势 是不需要扩展库的支持,这种特性使它
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 扩展

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读