Web Services教學登入
Web Services教學
作者:php.cn  更新時間:2022-04-11 14:41:17

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();
}


PHP中文網