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

 更新时间:2014年07月25日 15:22:14   投稿:junjie  
这篇文章主要介绍了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所写的代码这样调用。

相关文章

  • Yii安装与使用Excel扩展的方法

    Yii安装与使用Excel扩展的方法

    这篇文章主要介绍了Yii安装与使用Excel扩展的方法,简单分析了Yii中Excel扩展的下载、安装及相关使用技巧,需要的朋友可以参考下
    2016-07-07
  • CI框架验证码CAPTCHA辅助函数用法实例

    CI框架验证码CAPTCHA辅助函数用法实例

    这篇文章主要介绍了CI框架验证码CAPTCHA辅助函数用法,以实例形式详细讲述了基于CAPTCHA辅助函数实现验证码的方法,需要的朋友可以参考下
    2014-11-11
  • thinkphp实现附件上传功能

    thinkphp实现附件上传功能

    这篇文章主要为大家详细介绍了thinkphp实现附件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • php项目中百度 UEditor 简单安装调试和调用

    php项目中百度 UEditor 简单安装调试和调用

    这篇文章主要介绍了php项目中百度 UEditor 简单安装调试和调用的相关资料,需要的朋友可以参考下
    2015-07-07
  • php 实现银联商务H5支付的示例代码

    php 实现银联商务H5支付的示例代码

    这篇文章主要介绍了php 实现银联商务H5支付的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • PHP仿博客园 个人博客(1) 数据库与界面设计

    PHP仿博客园 个人博客(1) 数据库与界面设计

    自学PHP大半年多了,断断续续地,但是最终还是坚定了我的想法,将PHP继续下去,所以写这个PHP的博客是为了找个稳定的 PHP工作,不求工资多高,但求一收留之地
    2013-07-07
  • php设计模式之职责链模式定义与用法经典示例

    php设计模式之职责链模式定义与用法经典示例

    这篇文章主要介绍了php设计模式之职责链模式定义与用法,结合完整实例形式详细分析了php职责链模式的概念、原理、定义与使用方法,注释中包含详细的说明,需要的朋友可以参考下
    2019-09-09
  • Laravel学习教程之路由模块

    Laravel学习教程之路由模块

    这篇文章主要给大家介绍了Laravel学习教程之路由模块的相关资料,文中通过示例代码介绍的非常详细,对大家学习或使用laravel具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • PHP实现远程下载文件到本地

    PHP实现远程下载文件到本地

    经常写采集器发布接口需要使用到远程附件的功能,所以自己写了一个PHP远程下载文件到本地的函数,一般情况下已经够用了,如果服务器支持CURL函数,程序则会优先选择CURL,有需要的小伙伴可以参考下。
    2015-05-05
  • 全世界最小的php网页木马一枚 附PHP木马的防范方法

    全世界最小的php网页木马一枚 附PHP木马的防范方法

    php网页木马代码,大家可以看下自己的网站里面是不是有这样的代码,注意网站安全用mcafee限制w3wp.exe生成php或者asp文件。并在php.ini中设置一下。
    2009-10-10

最新评论