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实现批量查询清除一句话后门的代码
Jan 20 PHP
php实现的在线人员函数库
Apr 09 PHP
php cout&amp;lt;&amp;lt;的一点看法
Jan 24 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
Jun 03 PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 PHP
php断点续传之如何分割合并文件
Mar 22 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
Oct 27 PHP
php跨站攻击实例分析
Oct 28 PHP
Laravel中使用自己编写类库的3种方法
Feb 10 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
PHP开发实现快递查询功能详解
Apr 08 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 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 date函数参数详解
2006/11/27 PHP
php 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
PHP处理数组和XML之间的互相转换
2016/06/02 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
浅谈JavaScript对象与继承
2016/07/10 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
微信小程序新手教程之启动页的重要性
2019/03/03 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
大女孩胸罩:Big Girls Bras
2016/12/15 全球购物
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
小学六年级学生评语
2014/04/22 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电