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连接数据库代码应用分析
May 29 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
PHP实现设计模式中的抽象工厂模式详解
Oct 11 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
PHP编写简单的App接口
Aug 28 PHP
PHP实现链式操作的原理详解
Sep 16 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
Laravel中获取IP的真实地理位置
Apr 01 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 XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
js的alert样式如何更改如背景颜色
2014/01/22 Javascript
js style动态设置table高度
2014/10/21 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
JavaScript操作表单实例讲解(上)
2016/06/20 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
Element Input输入框的使用方法
2020/07/26 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
react中hook介绍以及使用教程
2020/12/11 Javascript
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
Python自定义线程池实现方法分析
2018/02/07 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
美国家具网站:Cymax
2016/09/17 全球购物
Michael Kors香港官网:美国奢侈品品牌
2019/12/26 全球购物
期终自我鉴定
2014/02/17 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
企业介绍信范文
2015/01/30 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers