Web Service 實例
任何應用程式都可擁有 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 // SiteInfo 类用于处理请求 Class SiteInfo { /** * 返回网站名称 * @return string * */ public function getName(){ return "php中文网"; } public function getUrl(){ return "www.php.cn"; } } // 创建 SoapServer 对象 $s = new SoapServer(null,array("location"=>"http://localhost/soap/Server.php","uri"=>"Server.php")); // 导出 SiteInfo 类中的全部函数 $s->setClass("SiteInfo"); // 处理一个SOAP请求,调用必要的功能,并发送回一个响应。 $s->handle(); ?>
客戶端Client.php 檔案程式碼如下:
<?php try{ // non-wsdl方式调用web service // 创建 SoapClient 对象 $soap = new SoapClient(null,array('location'=>"http://localhost/soap/Server.php",'uri'=>'Server.php')); // 调用函数 $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(); }