PHP中如何调用webservice的实例参考


Posted in PHP onApril 25, 2013

下面用一个例子说明:web service服务是查询QQ用户是否在线

使用php5开发客户端:

<?php
try {
    //$client = new SoapClient("HelloService.wsdl",array('encoding'=>'UTF-8'));
    $client = new SoapClient("http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl");
    var_dump($client->__getFunctions());
    print("<br/>");
    var_dump($client->__getTypes());
    print("<br/>");
    class qqCheckOnline{
       var $qqCode = "10000";
    };
    $arrPara = array(new qqCheckOnline);
    $arrResult = $client->__Call("qqCheckOnline",$arrPara);//$client->qqCheckOnline($arrPara);
    echo $arrResult->qqCheckOnlineResult . "<br/>";
} catch (SOAPFault $e) {
    print $e;
}
?>

代码确实很简单吧,创建SoapClient对象时,可以使用保存在本地WSDL文件,也可以使用远程的地址,后面的array数组里可以带上很多的参数,具体参数可以查php的SoapClient帮助,这里带的是字符集编码,如果调用方法的参数里有中文,一定要指定字符集编码,否则会出错。

调用web service前可以先调用SoapClient的__geunctions()和__getTypes()方法看一下你要调用的web service暴露的方法,参数和数据类型,需要注意的是传入的参数名一定要和soapclient里面定义的一致,否则参数是传不过去的。

需要使用SoapClient的__soapCall()或__call()方法,具体使用方法可以查php的帮助文档。如果参数要求是一个结构体,请用类代替,如上面的代码。

另外发现个问题,如果web service方法返回的是xml格式的字符串,php接收到以后会自己把数据内容解析出来,而不是xml字符串.

PHP 相关文章推荐
使用迭代器 遍历文件信息的详解
Jun 08 PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 PHP
PHP不用递归实现无限分级的例子分享
Apr 18 PHP
ThinkPHP CURD方法之field方法详解
Jun 18 PHP
php导出CSV抽象类实例
Sep 24 PHP
3款值得推荐的微信开发开源框架
Oct 28 PHP
php自定义错误处理用法实例
Mar 20 PHP
PHP面试题之文件目录操作
Oct 15 PHP
PHP+MySQL实现无极限分类栏目的方法
Dec 23 PHP
PHP中header用法小结
May 23 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
Jul 10 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
Apr 25 #PHP
php中防止SQL注入的最佳解决方法
Apr 25 #PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 #PHP
PHP笔记之:日期函数的使用介绍
Apr 24 #PHP
php笔记之:AOP的应用
Apr 24 #PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 #PHP
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
Apr 24 #PHP
You might like
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
2016/12/20 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
深入理解Promise.all
2018/08/08 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
python代码过长的换行方法
2018/07/19 Python
Python tkinter三种布局实例详解
2020/01/06 Python
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
澳大利亚网上书店:QBD
2021/01/09 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
编码实现字符串转整型的函数
2012/06/02 面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
军训考核自我鉴定
2014/02/13 职场文书
护士求职信范文
2014/05/24 职场文书
股权转让协议范本
2014/12/07 职场文书
领导干部考核评语
2015/01/04 职场文书
2015年护士节慰问信
2015/03/23 职场文书
2015年推普周活动总结
2015/03/27 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
国庆阅兵观后感
2015/06/15 职场文书
2016新年感言
2015/08/03 职场文书
市级三好生竞选稿
2015/11/21 职场文书