php创建调用webservice接口示例

发布时间:2020-07-26编辑:脚本学堂
php中创建和调用webservice接口示例,包括webservice基本知识、webservice服务端例子、webservice客户端例子,需要的朋友可以参考下。

php怎么编写webservice接口与调用ebservice接口?

什么是webservice?

WebService就是一些站点开放一些服务出来, 也可以是自己开发的Service, 也就是一些方法, 通过URL,指定某一个方法名,发出请求,站点里的这个服务(方法),接到你的请求,根据传过来的参数,做一些处理,然后把处理后的结果以XML形式返回来给你,你的程序就解析这些XML数据,然后显示出来或做其它操作。

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

如何用php写webservice接口让别人调用?

首先,建一个.wsdl文件。

两种方式:
一种是直接用zend studio工具生成;
另一种是根据SoapDiscovery.class.php自动生成wsdl文件;
具体请根据情况选择,前者比较快速。

例子,php中用类如何生成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文件其实真正其作用的就是实现类中的方法;
1、服务端类文件 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文件后,那么就需要客户端调用了。

2、客户端调用代码,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接口和调用的实例代码,调用别人的webservice接口,请参考client.php程序代码。