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 相关文章推荐
在Zeus Web Server中安装PHP语言支持
Oct 09 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
Apr 28 PHP
php array_walk() 数组函数
Jul 12 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
Jul 17 PHP
Linux下实现PHP多进程的方法分享
Aug 16 PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 PHP
PHP判断是否为空的几个函数对比
Apr 21 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
Oct 21 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
Feb 07 PHP
PHP实现两种排课方式
Jun 26 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 如何获取数组第一个值
2013/08/06 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
2015/12/22 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
javascript数组详解
2014/10/22 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
浅谈js的异步执行
2016/10/18 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
python 正则式 概述及常用字符
2009/05/07 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
python 基于TCP协议的套接字编程详解
2019/06/29 Python
python pycharm的安装及其使用
2019/10/11 Python
python实现简单井字棋小游戏
2020/03/05 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
警察思想汇报
2014/01/04 职场文书
社区母亲节活动方案
2014/03/05 职场文书
房产委托公证书样本
2014/04/04 职场文书
产品推广策划方案
2014/05/10 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
详解CSS3浏览器兼容
2022/12/24 HTML / CSS