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基础知识:类与对象(2) 自动加载对象
Dec 13 PHP
php的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
Aug 08 PHP
php旋转图片90度的方法
Nov 07 PHP
Yii的CDbCriteria查询条件用法实例
Dec 04 PHP
PHP类的封装与继承详解
Sep 29 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
May 13 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
Feb 06 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
PHP微信H5支付开发实例
Jul 25 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 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中使用灵巧的体系结构
2006/10/09 PHP
php xml-rpc远程调用
2008/12/19 PHP
UCenter 批量添加用户的php代码
2012/07/17 PHP
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
Document:getElementsByName()使用方法及示例
2013/10/28 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
微信小程序封装的HTTP请求示例【附升级版】
2019/05/11 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
Python 转义字符详细介绍
2017/03/21 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
python斐波那契数列的计算方法
2018/09/27 Python
django框架cookie和session用法实例详解
2019/12/10 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
艺术设计专业个人求职信范文
2013/12/11 职场文书
迟到检讨书1000字
2014/01/15 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
跳蚤市场口号
2014/06/13 职场文书
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android