Web Service 范例
Web Service 的创建与编程语言的种类无关,任何应用程序都可拥有 Web Service 组件
SOAP 有两种操作方式: NO-WSDL
与 WSDL
-
NO-WSDL模式: 使用参数来传递要使用的信息
-
WSDL模式: 使用WSDL文件名作为参数,并从WSDL中提取服务所需的信息
因为我的主要编程语言是 PHP,所以我将用 PHP 的 SOAP 扩展创建一些 Web Service 范例
范例 PHP SOAP Web Service
开始开发范例前,我们先要确保 PHP 是否安装了 SOAP 扩展
1. 命令行检测法
在命令行里输入
php -i | grep soap
输出
Soap Client => enabled Soap Server => enabled
说明 SOAP 扩展已经装好了
2. phpinfo() 函数检测法
创建一个 i.php
的文件输入
<?php phpinfo();
访问 http://localhost/i.php
出现以下信息表明已经安装了 SOAP 扩展:
PHP SOAP 范例目录结果如下:
使用 Linux tree 命令 查看目录结果如下:
soap ├── client.php └── server.php 0 directories, 2 files
PHP SOAP 范例: 服务器端 server.php
<?php <?php // Web 类用于处理请求 Class Web { /** * 返回网站名称 * @return string */ public function getName(){ return "简单编程"; } /** * 返回网站首页地址 * @return string */ public function getUrl(){ return "https://www.twle.cn/"; } } // 创建 SoapServer 对象 $s = new SoapServer(null, array( 'uri' =>'twle_web', ) ); // 导出 Web 类中的全部函数 $s->setClass("Web"); // 处理一个SOAP请求,调用必要的功能,并发送回一个响应。 $s->handle();
PHP SOAP 范例: 客户端 client.php
<?php try{ // non-wsdl方式调用web service // 创建 SoapClient 对象 // ini_set('soap.wsdl_cache_enabled', "0"); $soap = new SoapClient(null,array( "location" => "http://127.0.0.1:3000/server.php", "uri" => "twle_web", //资源描述符服务器和客户端必须对应 "style" => SOAP_RPC, "use" => SOAP_ENCODED ) ); // 调用函数 $result1 = $soap->getName(); $result2 = $soap->__soapCall("getUrl",array()); echo $result1."<br/>"; echo $result2; } catch(SoapFault $e){ echo $e->getMessage(); }catch(Exception $e){ echo $e->getMessage(); }
首先 cd 到 soap 目录,然后在命令行中输入
PHP -S 0.0.0.0:3000
接着浏览器中输入 http://127.0.0.1:3000/client.php
就会看到如下结果
简单编程 https://www.twle.cn/