WebService接口之nusoap
来源:互联网 发布:软件著作权查询网站 编辑:程序博客网 时间:2024/05/29 15:45
nusoap是PHP环境下的WebService编程工具,用于创建或调用WebService。它是一个开源软件,是完全采用PHP语言编写的、通过HTTP收发SOAP消息的一系列PHP类。
nusoap的一个优势是不需要扩展库的支持,这种特性使得nusoap可以用于所有的PHP环境,不受服务器安全设置的影响。
1.下载nusoap文件
nusoap下载地址 文件在lib/nusoap.php
我的资源nusoap0.9.5
2.服务器端,建立nusoapService.php文件
// 引入nusoap文件require_once 'nusoap.php';$server = new soap_server();// 避免乱码$server->soap_defencoding = 'UTF-8';$server->decode_utf8 = false;$server->xml_encoding = 'UTF-8';$server->configureWSDL('测试接口'); // 打开wsdl支持/*注册需要被客户端访问的程序类型对应值: bool->"xsd:boolean" string->"xsd:string" int->"xsd:int" float->"xsd:float"*/$server->register( 'GetName', // 方法名 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 GetName($name) { return "获取名字为:, { $name } !";}
3.客户端,建立 nusoapClient.php 文件
// 使用nusoap请关闭phpsoap扩展,否则有冲突require_once ("nusoap.php");/*通过 WSDL 调用 WebService参数 1 WSDL 文件的地址 (问号后的wsdl不能为大写)参数 2 指定是否使用 WSDL$client = new soapclient('http://localhost/api/nusoapService.php?wsdl',true);*/$client = new soapclient('http://localhost/api/nusoapService.php'); // 方法1//$client = new soapclient('http://localhost/api/nusoapService.php?wsdl',true); // 方法2,如果没有打开wsdl支持,则这个方法错误// 避免乱码$client->soap_defencoding = 'UTF-8';$client->decode_utf8 = false;$client->xml_encoding = 'UTF-8';// 参数转为数组形式传递$paras = array('name' => 'Caffrey Xin' );// 目标方法没有参数时,可省略后面的参数$result = $client->call( 'GetName', $paras );// 检查错误,获取返回值if (!$err = $client->getError()) { echo " 返回结果: ", $result;} else { echo " 调用出错: ", $err;}
4.返回结果: Hello, { Caffrey Xin } !
WSDL
WSDL是一种用于描述Web Service的XML语言。它是一种机读格式,把所有的访问服务所必须的信息提供给Web Service客户端。NuSOAP专门提供一个类进行WDSL文件的解析,并且从中提取信息。soapclient对象使用wsdl类来减轻开发者调用服务的难度。通过WSDL信息的帮助来创建报文,程序员仅仅需要知道操作的名字和参数就能调用它。
通过NuSOAP使用WSDL提供以下几点优点:
所有的服务元文件,如命名空间(namespaces),endpoint URLs,参数名(parameter names)等等都可以直接从WSDL文件获得,这样就允许客户端动态的适应服务器端的变化。因为从服务器随时可以获得,所以这些数据不再需要在用户脚本中使用硬性编码。
NuSoap调用WebService出现乱码的解决方法:
$client->soap_defencoding = 'utf-8'; $client->decode_utf8 = false; $client->xml_encoding = 'utf-8';
文件代码不能有任何输出 , 否则调用时会报类似如下错误:
XML error parsing SOAP payload on line x( 行号 ): Reserved XML Name
参考:http://blog.csdn.net/haiqiao_2010/article/details/8813126
- WebService接口之nusoap
- NuSOAP webservice接口使用详解
- NuSOAP webservice接口使用详解
- NuSOAP webservice接口使用详解
- NuSOAP webservice接口使用详解
- php nusoap 接口
- 利用NuSoap开发WebService(PHP)
- NuSoap介绍 (php调用webservice)
- PHP调用Webservice-NuSoap实例
- 利用NuSoap开发WebService(PHP)
- 利用NuSoap开发WebService(PHP)
- webservice——nusoap详解
- 利用NuSoap开发WebService(PHP)
- 利用NuSoap开发WebService(PHP)
- webService之天气接口
- WebService接口之soap
- 接口测试之webservice
- PHP使用nusoap来调用webService
- ffmpeg 编译Android支持的所有cpu架构的共享库
- [20160815]vim入门命令总结
- Dungeon Game
- clob 转String 、string 转clob
- java 将xml格式的文本生成xml文件,并获取xml中指定节点的内容
- WebService接口之nusoap
- JVM内存模型及垃圾回收算法
- JavaScript总结
- 计算算法运算时间
- 第九周 oj 四,等比数列求和
- javascript正则表达式验证表单
- 《软技能——代码之外的生存指南》总结
- PHP正则匹配中文字符(囊括大部分)
- Linux服务器中文件删除与替换如何实现?