程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 使用PHP內置SOAP要點分析

使用PHP內置SOAP要點分析

編輯:關於PHP編程

對於剛剛接觸

由於文本只打算說說客戶端的用法,所以得先找一些能直接用的服務端,Xmethods提供了一些有趣的選擇,這裡選擇其中的Map IP Address to Country服務,功能很簡單,就是提供一個IP地址,然後返回國家名稱。

先創建一個client實例:

$client = new SoapClient
(’http://www.ecubicle.net/
iptocountry.asmx?wsdl’, 
array(’trace’ => true)); 

通過設置trace為true,我們可以在稍後使用__getLastRequest,__getLastRequestHeaders,__getLastResponse,__getLastResponseHeaders等方法得到一些信息,在程序調試階段,這些信息很有用,程序投入使用時,則不必使用此參數。除了trace參數,還可以設定login和password參數以實現HTTP認證的功能,此外還有很多參數,可以參考官方文檔。

創建了前面的$client實例後,我們可以先看看服務都提供了哪些方法:

print_r($client->__getFunctions());

服務方法的信息細節可以從wsdl裡自己查閱,下面看看PHP內置SOAP怎麼調用一個實際的方法,$ip=’64.156.132.140′:

  1. $result = $client->__soapCall
    (’FindCountryAsString’, array
    (’FindCountryAsString’ => 
    array(’V4IPAddress’ => $ip)));  
  2. print_r($result->
    FindCountryAsStringResult); 

還可以這樣調用:

  1. $result = $client->
    FindCountryAsString(array
    (’V4IPAddress’ => $ip));  
  2. print_r($result->
    FindCountryAsStringResult); 

PHP內置SOAP還可以這樣調用:

  1. $params = new SoapParam(array(’V4IPAddress’ 
    => $ip), ‘FindCountryAsStringSoapIn’);  
  2. $result = $client->__soapCall
    (’FindCountryAsString’, array($params));  
  3. print_r($result->FindCountryAsStringResult); 

還可以這樣調用:

  1. $params = new SoapParam(array(’V4IPAddress’ 
    => $ip), ‘FindCountryAsStringSoapIn’);  
  2. $result = $client->FindCountryAsString($params);  
  3. print_r($result->FindCountryAsStringResult); 

在使用PHP內置SOAP時,參數如何傳遞有點不好說明,這需要研讀wsdl描述文檔,不過看wsdl實在是一件無趣的事情,所以我覺得你可以先大概看一下wsdl,然後憑感覺去嘗試傳遞參數,其中配合trace調試,一般來說,試幾次就能找到正確的傳遞方式,如果還不行,再通過__getLastRequest,__getLastRequestHeaders等方法提供的信息配合wsdl描述文檔仔細研究。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved