NuSOAP簡介 php中使用webservice

來源:互聯網
上載者:User

標籤:style   blog   http   java   color   使用   

許多機構已經採用了Apach和PHP作為他們的Web應用環境。在Web services模式中採用PHP可能看上去可能會比較難。但是事實上,搭配NuSoap,你可以輕鬆的應用PHP構建SOAP的用戶端和伺服器端。 

 
PHP SOAP伺服器 
 用PHP和NuSoap來建立SOAP伺服器非常容易。基本上,你只要寫出你想要暴露給你的Web services的函數,然後用NuSoap去註冊它們就可以了。OK,另外還需要兩步才能完成PHP SOAP伺服器的建立。首先你還要在你的PHP代碼中建立NuSoap對象的一個執行個體,然後用HTTP POST方法將未經處理資料傳給NuSoap進行處理 
NuSOAP的使用比較簡單,其中最常用到的類是soap_server和soapclient, 其中soap_server用於建立 Webservice服務,類soapclient則用於調用Webservice  .這兩個類的定義都在lib/nusoap.php中,因此我們在建立 或調用Webservice介面程式時均需要引用該檔案. 

 
NuSoap是PHP環境下的WebService編程工具,用於建立或調用WebService。它是一個開源軟體,是完全採用PHP語言編寫的、通過HTTP收發SOAP訊息的一系列PHP類,由NuSphereCorporation(http://dietrich.ganx4.com/nusoap/  )開發。NuSOAP的一個優勢是不需要擴充庫的支援,這種特性使得NuSoap可以用於所有的PHP環境,不受伺服器安全設定的影響。  
 1. 首先,去http://sourceforge.net/projects/nusoap/  下載nusoap-0.9.5.zip ,解壓後把 lib 檔案夾放到與你的WebService 程式相同的目錄,如/WebService/lib 。
  2.  服務端:建立 nusoapService.php 檔案。   

<?phprequire_once ("lib/nusoap.php");$server = new soap_server ();// 避免亂碼$server->soap_defencoding = ‘UTF-8‘;$server->decode_utf8 = false;$server->xml_encoding = ‘UTF-8‘;$server->configureWSDL ( ‘sayHello‘ ); // 開啟 wsdl 支援/*    註冊需要被用戶端訪問的程式    類型對應值: bool->"xsd:boolean";  
        string->"xsd:string";        int->"xsd:int";
         float->"xsd:float";*/$server->register ( ‘sayHello‘, // 方法名            array ("name" => "xsd:string" ), // 參數,預設為 "xsd:string";            array ("return" => "xsd:string")// 傳回值,預設為 "xsd:string";
             ); //isset 檢測變數是否設定$HTTP_RAW_POST_DATA = isset ( $HTTP_RAW_POST_DATA ) ? $HTTP_RAW_POST_DATA : ‘‘;//service 處理用戶端輸入的資料$server->service ( $HTTP_RAW_POST_DATA );/** * 供調用的方法 * @param $name */function sayHello($name) { return "Hello, { $name } !";}?>

 3.  用戶端:建立 nusoapClient.php 檔案。  

<?phprequire_once ("lib/nusoap.php");/*        通過 WSDL 調用 WebService        參數 1 WSDL 檔案的地址 ( 問號後的 wsdl 不能為大寫 )        參數 2  指定是否使用 WSDL          $client = new soapclient(‘http://localhost/WebService/nusoapService.php?wsdl‘,true);        */$client = new soapclient ( ‘http://localhost/WebService/nusoapService.php‘ );$client->soap_defencoding = ‘UTF-8‘;$client->decode_utf8 = false;$client->xml_encoding = ‘UTF-8‘;// 參數轉為數組形式傳遞$paras = array (‘name‘ =>; ‘Bruce Lee‘ );// 目標方法沒有參數時,可省略後面的參數$result = $client->call ( ‘sayHello‘, $paras );// 檢查錯誤,擷取傳回值if (! $err = $client->getError ()) {    echo " 返回結果: ", $result;} else {    echo " 調用出錯: ", $err;}?>

   註:   
用 nusoap 實現 WebService, 不要開啟 php 的 SOAP 延伸模組   
  
  檔案代碼不能有任何輸出  ,  否則調用時會報類似如下錯誤:    
 XML error parsing SOAP payload on linex(  行號  ): Reserved XML Name  

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.