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入门学习知识点四 PHP正则表达式基本应用
Jul 14 PHP
php 数据库字段复用的基本原理与示例
Jul 22 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
May 04 PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 PHP
php中 $$str 中 &quot;$$&quot; 的详解
Jul 06 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 PHP
laravel创建类似ThinPHP中functions.php的全局函数
Nov 26 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 PHP
php 输出缓冲 Output Control用法实例详解
Mar 03 PHP
Git命令之分支详解
Mar 02 PHP
is_file和file_exists效率比较
Mar 14 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中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
php class类的用法详细总结
2013/10/17 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
基于JQuery实现图片轮播效果(焦点图)
2016/02/02 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
2016/05/16 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
pm2 部署 node的三种方法示例
2017/10/20 Javascript
谈谈JS中的!!
2017/12/07 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
班长演讲稿范文
2014/04/24 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript