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原理之异常机制深入分析
Aug 08 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
php include类文件超时问题处理
Feb 06 PHP
PHP获取文件相对路径的方法
Feb 26 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
May 11 PHP
php操作mongodb封装类与用法实例
Sep 01 PHP
PHP PDOStatement::fetchObject讲解
Feb 01 PHP
php设计模式之适配器模式原理、用法及注意事项详解
Sep 24 PHP
PHP之header函数详解
Mar 02 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将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
JS backgroundImage控制
2009/05/19 Javascript
javascript window对象属性整理
2009/10/24 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
Python2包含中文报错的解决方法
2018/07/09 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
名词解释型面试题(主要是网络)
2013/12/27 面试题
运动会四百米广播稿
2014/01/19 职场文书
小学评语大全
2014/04/22 职场文书
高中学生评语大全
2014/04/25 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书
vue打包时去掉所有的console.log
2022/04/10 Vue.js