php中创建和调用webservice接口示例

2015-01-24信息快讯网

这篇文章主要介绍了php中创建和调用webservice接口示例,包括webservice基本知识、webservice服务端例子、webservice客户端例子,需要的朋友可以参考下

作为开发者来讲,要想写webservice接口或者调用别人的webservice接口,首先需要了解什么是webservice。简单说, WebService就是一些站点开放一些服务出来, 也可以是你自己开发的Service, 也就是一些方法, 通过URL,指定某一个方法名,发出请求,站点里的这个服务(方法),接到你的请求,根据传过来的参数,做一些处理,然后把处理后的结果以XML形式返回来给你,你的程序就解析这些XML数据,然后显示出来或做其它操作。

写webservice需要了解:基础的 Web Services 平台是 XML + HTTP;另外Web services 平台的元素:SOAP (简易对象访问协议),UDDI (通用描述、发现及整合),WSDL (Web services 描述语言);任何webservice都包括客户端和服务端。下面以实例讲解如何用php写webservice接口让别人调用:

首先需要建一个.wsdl文件,那么php如何建这个文件呢。有两种方式可以实现,一种是直接用zend studio工具生成;另一种就是php根据SoapDiscovery.class.php自动生成wsdl文件;具体哪一种根据自己情况选择,我一般用的是前者这样比较快速。下面写一下用类如何生成wsdl文件,首先需要上网上下载那个类文件,然后引入类文件后,看如下代码:
creat_wsdl.php

<?php
include_once('Service.php');
include_once('SoapDiscovery.class.php');
$wsdl=new SoapDiscovery('Service','soap');//第一参数为类名,也是生成wsdl的文件名Service.wsdl,第二个参数是服务的名字可以随便写
$wsdl->getWSDL();
?>

这样运行creat_wsdl.php文件就可以生成wsdl文件了。是不是很简单
任何一个webservice都需要和一个实现类绑定的。也就是说别人调用的wsdl文件其实真正其作用的就是实现类中的方法;如下代码为服务端类文件
Service.php
<?php
class Service
{
public function Hello()
{
echo 'hello good';
}
public function Add($a,$b)
{
return $a+$b;
}
}
$server=SoapServer('Service.php',array('soap_version'=>soap_1_2));
$server->setClass('Service');//注册Service类的所有方法
$server->handle();//处理请求
?>

写好服务端和wsdl文件后那么就需要客户端调用了。请看客户端调用代码:

client.php

<?php
ini_set('soap.wsdl_cache_enabled','0');//关闭缓存
$soap=new SoapClient('http://127.0.0.1/soap/Service.php?wsdl');
echo $soap->Add(1,2);
//echo $soap->_soapCall('Add',array(1,2))//或者这样调用也可以
?>

这就是一个完整的写webservice接口和调用的实例代码,希望对需要的phper有所帮助;
那么调用别人的webservice接口就是client.php所写的代码这样调用。

jQuery Mobile + PHP实现文件上传
php自定文件保存session的方法
php通过session防url攻击方法
PHP使用header()输出图片缓存实例
Codeigniter框架实现获取分页数据和总条数的方法
Dwz与thinkphp整合下的数据导出到Excel实例
Yii的CDbCriteria查询条件用法实例
php实现的SESSION类
Yii核心组件AssetManager原理分析
PHP中__FILE__、dirname与basename用法实例分析
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
PHP中array_slice函数用法实例详解
php使用str_replace实现输入框回车替换br的方法
php中time()与$_SERVER[REQUEST_TIME]用法区别
php中getservbyport与getservbyname函数用法实例
php几个预定义变量$_SERVER用法小结
php实现webservice实例
如何让CI框架支持service层
PHP判断文章里是否有图片的简单方法
Codeigniter中mkdir创建目录遇到权限问题和解决方法
codeigniter上传图片不能正确识别图片类型问题解决方法
2个Codeigniter文件批量上传控制器写法例子
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Codeigniter框架的更新事务(transaction)BUG及解决方法
PHP中可以自动分割查询字符的Parse_str函数使用示例
PHP中的use关键字概述
ThinkPHP实现将SESSION存入MYSQL的方法
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
Eclipse的PHP插件PHPEclipse安装和使用
ThinkPHP关于session的操作方法汇总
ThinkPHP跳转页success及error模板实例教程
PHP采用XML-RPC构造Web Service实例教程
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
destoon安装出现Internal Server Error的解决方法
浅谈PHP调用Webservice思路及源码分享
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
C#使用PHP服务端的Web Service通信实例
©2014-2024 dbsqp.com