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利用COM对象访问SQLServer、Access
Oct 09 PHP
解析yii数据库的增删查改
Jun 20 PHP
php中隐形字符65279(utf-8的BOM头)问题
Aug 16 PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 PHP
PHP获取当前相对于域名目录的方法
Jun 26 PHP
详解php中反射的应用
Mar 15 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
Jul 06 PHP
微信支付开发告警通知实例
Jul 12 PHP
php用户密码加密算法分析【Discuz加密算法】
Oct 12 PHP
php变量与数组相互转换的方法(extract与compact)
Dec 02 PHP
基于php中echo用逗号和用点号的区别详解
Jan 23 PHP
PHP赋值的内部是如何跑的详解
Jan 13 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 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
jQuery 动画基础教程
2008/12/25 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
JavaScript中跨域调用Flash的方法
2014/08/11 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
Python实现测试磁盘性能的方法
2015/03/12 Python
浅析Python中的多条件排序实现
2016/06/07 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
iostream与iostream.h的区别
2015/01/16 面试题
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
小学教师的个人自我鉴定
2013/10/24 职场文书
会计自荐书
2013/12/02 职场文书
社区国庆节活动方案
2014/02/05 职场文书
大学生入党积极分子党校学习思想汇报
2014/10/25 职场文书
教师考核评语大全
2014/12/31 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
旅游项目合作意向书
2015/05/08 职场文书
七年级英语教学反思
2016/02/15 职场文书
创业计划书之美容店
2019/09/16 职场文书