SOAP 簡單對象訪問協議, webService三要素 , SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)之一, soap用來描述傳遞信息的格式, WSDL 用 ...
SOAP 簡單對象訪問協議,
webService三要素 , SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)之一, soap用來描述傳遞信息的格式, WSDL 用來描述如何訪問具體的介面, uddi用來管理,分發,查詢webService 。
一,首先要設置伺服器環境。修改php.ini
得添加extension=php_soap.dll (載入soap 內置包)
修改soap.wsdl_cache_enabled=1 改為soap.wsdl_cache_enabled=0 這個是soap的緩存,測試的時候最好改為0,上線穩定了改為1 soap有兩種模式一種是wsdl,一種是no-wsdl 二,熟悉幾個函數
一、SoapServer 伺服器
1、__construct
作用:創建 SoapServer 對象
用法:__construct ( mixed wsdl [, array options] )
參數:wsdl 文件地址,options soap_version,encoding,actor,classmap
返回:對象
2、addFunction
作用:為客戶端導出一個或多個函數
用法:addFunction ( mixed functions )
參數:functions 函數,一個或多個,全部 SOAP_FUNCTIONS_ALL
返回:無
3、getFunctions
作用:獲取全部函數
用法:getFunctions ()
參數:無
返回:函數數組
4、setClass
作用:導出類中的全部函數
用法:setClass ( string class_name [, mixed args [, mixed ...]] )
參數:class_name 類名 args 參數
返回:無
5、setPersistence
作用:允許保存在PHP之間的會話請求數據
用法:setPersistence ( int mode )
參數:mode SOAP_PERSISTENCE_SESSION SOAP_PERSISTENCE_REQUEST
返回:無
6、fault
作用:允許保存在PHP之間的會話請求數據
用法:fault ( string code, string string [, string actor [, mixed details [, string name]]] )
參數:code 錯誤代碼 string 簡短錯誤信息 actor 導致錯誤的字元串 details 錯誤詳細信息
返回:無
7、handle ( [string soap_request] )
作用:處理一個SOAP請求,調用必要的功能,併發送回一個響應。
用法:handle ( [string soap_request] )
參數:soap_request 請求
返回:無
二、SoapClient 客戶端
1、__construct
作用:創建 SoapClient 對象
用法:__construct ( mixed wsdl [, array options] )
參數:wsdl 文件地址 或 null,
options
a、soap_version soap版本,encoding 編碼,compression 壓縮,classmap
b、http身份驗證 :login , password
c、代理服務:proxy_host, proxy_port, proxy_login and proxy_password
d、證書驗證:local_cert , passphrase
e、wsdl 為null 時:location , uri
返回:對象
2、__call
作用:調用函數
用法:__call ( string function_name, array arguments [, array options [, array input_headers [, array output_headers]]] )
參數:function_name,arguments
返回:無
3、__doRequest
作用:在執行HTTP請求
用法:__doRequest ( string request, string location, string action, int version [, int one_way] )
參數:request XML的SOAP請求 location 請求地址 action ,version
返回:字元串
4、__getFunctions
作用:獲取全部方法
用法:__getFunctions( )
參數:無
返回:函數數組
5、__getFunctions
作用:獲取全部方法
用法:__getFunctions( )
參數:無
返回:函數數組
6、__setCookie
作用:設置cookie
用法:__setCookie ( string name [, string value] )
參數:name cookie名稱 value cookie值
返回:無
7、__getLastRequest
作用:獲取最後的請求
用法:__getLastRequest ()
參數:無
返回:最後的請求
8、__getLastRequestHeaders
作用:獲取最後的請求頭部信息
用法:__getLastRequestHeaders ()
參數:無
返回:最後的請求頭部信息
9、__getLastResponse
作用:獲取最後的回應
用法:__getLastRequest ()
參數:無
返回:最後的請求回應
10、__getLastResponseHeaders
作用:獲取最後的回應頭部信息
用法:__getLastResponseHeaders ()
參數:無
返回:最後的回應頭部信息
三、SoapVar 參數
1、__construct
作用:創建 SoapVar 對象
用法:__construct ( mixed data, int encoding [, string type_name [, string type_namespace [, string node_name [, string node_namespace]]]] )
參數:data 數據,encoding 編碼
返回:參數對象
四、SoapParam 參數
1、__construct
作用:創建 SoapParam 對象
用法:__construct ( mixed data, string name )
參數:data 傳遞的變數,name 變數的值
返回:參數對象
__construct ( string namespace, string name [, mixed data [, bool mustUnderstand [, mixed actor]]] )
五、SoapHeader 頭部
1、__construct
作用:創建 SoapHeade 對象
用法:__construct ( string namespace, string name [, mixed data [, bool mustUnderstand [, mixed actor]]] )
參數: namespace 命名空間 name SOAP 頭標簽名稱 ,data 頭部內容
返回:對象
六、SoapFault 頭部
1、__construct
作用:創建 SoapFault 對象
用法:__construct ( string faultcode, string faultstring [, string faultactor [, mixed detail [, string faultname [, SoapHeader headerfault]]]] )
參數: faultcode 錯誤代碼,faultstring 錯誤信息 ,faultactor 導致錯誤字元串,detail 錯誤詳情
返回:對象
七、例子
1、定義一個類
class Calculator
{
public function sum($x,$y)
{
return $x + $y;
}
}
2、使用Zend Studio生成wsdl文件;
3、SOAP 伺服器端 (server.php)
require './Calculator.php';
$server = newSoapServer('./wps.wsdl');
$server->setClass('Culculator');
$server->handle();
3、SOAP 客戶端(client.php)
查看源碼 複製到剪切板 列印 幫助
$soap = newSoapClient( './wps.wsdl' );
echo $soap ->sum(1,2);
//運行輸出 3