任何應(yīng)用程序都可擁有 Web Service 組件。
Web Service 的創(chuàng)建與編程語言的種類無關(guān)。
本章節(jié)我們將為大家介紹使用 PHP 的 SOAP 擴(kuò)展來創(chuàng)建 Web Service。
SOAP有兩種操作方式,NO-WSDL 與 WSDL。
NO-WSDL模式:使用參數(shù)來傳遞要使用的信息。
WSDL模式: 使用WSDL文件名作為參數(shù),并從WSDL中提取服務(wù)所需的信息。
一個實(shí)例:PHP Web Service
在開始實(shí)例前,我們需要確定PHP是否安裝了 SOAP 擴(kuò)展。查看 phpinfo,出現(xiàn)以下信息表明已經(jīng)安裝了 SOAP 擴(kuò)展:
在這個例子中,我們會使用 PHP SOAP 來創(chuàng)建一個簡單的 Web Service。
服務(wù)端 Server.php 文件代碼如下:
<?php // SiteInfo 類用于處理請求 Class SiteInfo { /** * 返回網(wǎng)站名稱 * @return string * */ public function getName(){ return "php中文網(wǎng)"; } public function getUrl(){ return "ipnx.cn"; } } // 創(chuàng)建 SoapServer 對象 $s = new SoapServer(null,array("location"=>"http://localhost/soap/Server.php","uri"=>"Server.php")); // 導(dǎo)出 SiteInfo 類中的全部函數(shù) $s->setClass("SiteInfo"); // 處理一個SOAP請求,調(diào)用必要的功能,并發(fā)送回一個響應(yīng)。 $s->handle(); ?>
客戶端 Client.php 文件代碼如下:
<?php try{ // non-wsdl方式調(diào)用web service // 創(chuàng)建 SoapClient 對象 $soap = new SoapClient(null,array('location'=>"http://localhost/soap/Server.php",'uri'=>'Server.php')); // 調(diào)用函數(shù) $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(); }