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操作数组的一些函数整理介绍
Jul 17 PHP
php获取从百度搜索进入网站的关键词的详细代码
Jan 08 PHP
php接口和抽象类使用示例详解
Mar 02 PHP
PHP英文字母大小写转换函数小结
May 03 PHP
php中switch与ifelse的效率区别及适用情况分析
Feb 12 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
PHP获取MySQL执行sql语句的查询时间方法
Aug 21 PHP
php中的explode()函数实例介绍
Jan 18 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
Jun 03 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
PHP实现计算器小功能
Aug 28 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
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
php密码生成类实例
2014/09/24 PHP
php模拟post提交数据的方法
2015/02/12 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
php服务器的系统详解
2019/10/12 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
动态调用CSS文件的JS代码
2010/07/29 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
Javascript实现字数统计
2015/07/03 Javascript
JS实现方向键切换输入框焦点的方法
2015/08/19 Javascript
JavaScript prototype属性详解
2016/10/25 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
react-native android状态栏的实现
2018/06/15 Javascript
vue集成百度UEditor富文本编辑器使用教程
2018/09/21 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
[14:03]2017DOTA2亚洲邀请赛开幕式:12神兵演绎水墨中华
2017/04/01 DOTA
python中enumerate函数遍历元素用法分析
2016/03/11 Python
django的登录注册系统的示例代码
2018/05/14 Python
pandas的qcut()方法详解
2019/07/06 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
2020/06/05 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
大学生怎样进行自我评价
2013/12/07 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
web前端之css水平居中代码解析
2021/05/20 HTML / CSS
基于Python实现流星雨效果的绘制
2022/03/18 Python
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis