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 相关文章推荐
PHP入门速成(2)
Oct 09 PHP
php 删除记录实现代码
Mar 12 PHP
php去掉字符串的最后一个字符附substr()的用法
Mar 23 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
深入PHP操作MongoDB的技术总结
Jun 02 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
zf框架的校验器InArray使用示例
Mar 13 PHP
PHP中提问频率最高的11个面试题和答案
Sep 02 PHP
php广告加载类用法实例
Sep 23 PHP
解析WordPress中函数钩子hook的作用及基本用法
Dec 22 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
Apr 10 PHP
PHP高并发和大流量解决方案整理
Dec 24 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
php中获得视频时间总长度的另一种方法
2011/09/15 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
js中for in的用法示例解析
2013/12/25 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
使用原生js实现页面蒙灰(mask)效果示例代码
2014/06/20 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
微信小程序生成二维码的示例代码
2019/03/29 Javascript
angular 服务随记小结
2019/05/06 Javascript
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
python赋值操作方法分享
2013/03/23 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
详解Python中where()函数的用法
2018/03/27 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
关于python下cv.waitKey无响应的原因及解决方法
2019/01/10 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
python爬虫之遍历单个域名
2019/11/20 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
大学生毕业自我鉴定范文
2014/02/03 职场文书
妇女干部培训方案
2014/05/12 职场文书
教师求职自荐书
2014/06/14 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
党支部书记四风问题整改措施
2014/09/24 职场文书
校长师德表现自我评价
2015/03/05 职场文书
深入理解python多线程编程
2021/04/18 Python