任何应用程序都可拥有 Web Service 组件。
Web Service 的创建与编程语言的种类无关。
本章节我们将为大家介绍使用 PHP 的 SOAP 扩展来创建 Web Service。
SOAP有两种操作方式,NO-WSDL 与 WSDL。
- NO-WSDL模式:使用参数来传递要使用的信息。
- WSDL模式: 使用WSDL文件名作为参数,并从WSDL中提取服务所需的信息。
一个实例:PHP Web Service
在开始实例前,我们需要确定PHP是否安装了 SOAP 扩展。查看 phpinfo,出现以下信息表明已经安装了 SOAP 扩展:

在这个例子中,我们会使用 PHP SOAP 来创建一个简单的 Web Service。
服务端 server.php 文件代码如下:
<?php
// RunoopsSoapServer 类用于处理请求
Class RunoopsSoapServer
{
public function hello(){
return "Hello runoops!";
}
/**
* 网站名称
* @return string
*/
public function getName(){
return "自学教程";
}
/**
* 网址
* @return string
*/
public function getUrl(){
return "www.runoops.com";
}
}
// 创建 SoapServer 对象
$s = new SoapServer(null,array("location"=>"http://runoopstest.lh/soap/server.php","uri"=>"server.php"));
// 导出 RunoopsSoapServer 类中的全部函数
$s->setClass("RunoopsSoapServer");
// 处理一个SOAP请求,调用必要的功能,并发送回一个响应。
$s->handle();
?>
客户端 client.php 文件代码如下:
<?php
try{
// non-wsdl方式调用web service
// 创建 SoapClient 对象
$soap = new SoapClient(null,array('location'=>"http://runoopstest.lh/soap/server.php",'uri'=>'server.php'));
// 调用函数
$hello = $soap->hello();
echo $hello."<br/>";
$result1 = $soap->getName();//调用方式1
$result2 = $soap->__soapCall("getUrl",array());//调用方式2
echo $result1.":";
echo $result2;
} catch(SoapFault $e){
echo $e->getMessage();
}catch(Exception $e){
echo $e->getMessage();
}
至此,webservice的配置工作已完成。其实,仅仅服务端文件便搭建了webservice服务,客户端文件只是为了测试。
访问服务端文件,开启webservice服务。

访问客户端文件,调用服务端服务,测试完成。

分享笔记