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 08 PHP
Windows下的PHP5.0安装配制详解
Sep 05 PHP
如何在PHP中使用Oracle数据库(3)
Oct 09 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
Aug 02 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
Aug 01 PHP
php中3des加密代码(完全与.net中的兼容)
Aug 02 PHP
php二维数组排序详解
Nov 06 PHP
php使用curl访问https示例分享
Jan 17 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
php判断对象是派生自哪个类的方法
Jun 20 PHP
php生成网页桌面快捷方式
May 05 PHP
PHP微信模板消息操作示例
Jun 29 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数据库调用类调用实例(详细注释)
2012/07/12 PHP
destoon官方标签大全
2014/06/20 PHP
yii操作session实例简介
2014/07/31 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
javascript div 弹出可拖动窗口
2009/02/26 Javascript
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
js parseInt(&quot;08&quot;)未指定进位制问题
2010/06/19 Javascript
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
浅谈Vue.js
2017/03/02 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
vue移动端监听滚动条高度的实现方法
2018/09/03 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
基于python的Paxos算法实现
2019/07/03 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
外贸公司实习自我鉴定
2013/09/24 职场文书
医学院校毕业生自荐信范文
2014/01/01 职场文书
事业单位请假制度
2014/01/13 职场文书
学校读书活动总结
2014/06/30 职场文书
如何书写邀请函?
2019/06/24 职场文书