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

 
这篇文章主要介绍了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所写的代码这样调用。

最新文章

  1. PhpStorm下Laravel代码智能提示
  2. Java学习之路(二)
  3. 西安Uber优步司机奖励政策(1月25日~1月31日)
  4. loadView与viewDidLoad不同 &amp;&amp; loadView学习总结
  5. C# 调用外部程序,并获取输出和错误信息
  6. oracle 开发笔记“跨数据库查询复制”
  7. 标准I/O 缓存
  8. Java split字符串中包含.的情况
  9. PTA題目的處理(二)
  10. sqlmap注入入门
  11. python基础4 input()函数
  12. hive之size函数和cast转换函数
  13. Empirical Evaluation of Speaker Adaptation on DNN based Acoustic Model
  14. MySql cmd下的学习笔记 —— 有关视图的操作(建立表)
  15. IP通信基础学习第一周
  16. WebViewJavascriptBridge浅析
  17. IDM 破解
  18. 第 4 章 容器 - 029 - 限制容器的 Block IO
  19. Actual Time Cost
  20. bzoj千题计划269:bzoj2655: calc (拉格朗日插值)

热门文章

  1. 【读书笔记】iOS网络-Web Service协议与风格
  2. OC 多态
  3. Web应用程序系统的多用户权限控制设计及实现-总结【11】
  4. iOS 为视图添加抖动效果
  5. js 静态私有变量
  6. LCS(Longest Common Subsequence 最长公共子序列)
  7. C#中的Lambda表达式和表达式树
  8. javascript-抽象工厂模式
  9. Java基础语法总结2
  10. Android学习笔记之AndroidManifest.xml文件解析(转)