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 相关文章推荐
phpize的深入理解
Jun 03 PHP
php ci框架验证码实例分析
Jun 26 PHP
PHP中$_FILES的使用方法及注意事项说明
Feb 14 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
Laravel 5 学习笔记
Mar 06 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
thinkPHP中多维数组的遍历方法
Jan 09 PHP
PHP获取指定日期是星期几的实现方法
Nov 30 PHP
PHP最常用的正则表达式
Feb 13 PHP
微信公众号开发之通过接口删除菜单
Feb 20 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
Feb 27 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
海贼王:最美的悬赏令!
2020/03/02 日漫
php mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
2012/02/10 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
jquery实现通用版鼠标经过淡入淡出效果
2014/06/15 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
NodeJS整合银联网关支付(DEMO)
2016/11/09 NodeJs
vue 动态修改a标签的样式的方法
2018/01/18 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
JAVA和C++区别都有哪些
2015/03/30 面试题
电子商务自荐书范文
2014/01/04 职场文书
温馨提示标语
2014/06/26 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2016年教师节慰问信
2015/12/01 职场文书
导游词之井冈山
2019/11/20 职场文书
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android