首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 建立與呼叫 WebService 介面完整實戰:WSDL、SOAP Server/Client

     編輯:PHP 綜合知識

WebService 基礎架構

  • 傳輸協定:HTTP
  • 資料格式:XML
  • 核心標準:SOAP (訊息封裝)、WSDL (介面描述)、UDDI (服務發現)
  • 雙端架構:Server (服務提供者) + Client (消費者)

Server 端實作

1. 服務類別

// Service.php
class Service {
    public function Hello() {
        return 'hello good';
    }
    public function Add($a, $b) {
        return $a + $b;
    }
}

2. 自動產生 WSDL

需下載 SoapDiscovery.class.php:

// create_wsdl.php
include_once('Service.php');
include_once('SoapDiscovery.class.php');

$wsdl = new SoapDiscovery('Service', 'soap');
$wsdl->getWSDL(); // 產生 Service.wsdl

3. SOAP Server 啟動

// server.php
$server = new SoapServer('Service.wsdl', ['soap_version' => SOAP_1_2]);
$server->setClass('Service');
$server->handle();

Client 端呼叫

// client.php
ini_set('soap.wsdl_cache_enabled', 0); // 關閉快取(開發階段)

$client = new SoapClient('https://127.0.0.1/soap/server.php?wsdl');
echo $client->Add(1, 2); // 輸出 3

// 或使用 _soapCall
// echo $client->_soapCall('Add', [1, 2]);

關鍵注意事項

  • WSDL 必須可公開存取(Client 會下載解析)
  • 開發時關閉 WSDL 快取,上線後開啟提升效能
  • 複雜型別需在 WSDL 中定義 complexType
  • 錯誤處理:捕捉 SoapFault 例外
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved