PHP SOAP模組的使用方法:NON-WSDL模式

來源:互聯網
上載者:User

標籤:style   class   blog   code   http   java   

 PHP SOAP擴充可以協助我們很輕鬆的實現web service服務,在PHP的SOAP擴充中主要有兩種操作模式:WSDL模式和NON-WSDL模式,前者通過使用WSDL檔案名稱作為參數,並從 WSDL中提取服務所使用的資訊,後者則是通過傳參的方式來傳遞所要使用的資訊。李壞今天主要為大家分享一下NON-WSDL模式的簡單用法。
      首先我們來瞭解一下SOAP擴充的三個主要對象:

1.SoapServer

 SoapServer用於建立php伺服器端頁面時定義可被調用的函數及返迴響應資料。建立一個NON-WSDL模式的SoapServer對象的文法格式如下:

$soap = new SoapServer(null,$arr);

  $arr是SoapServer的屬性資訊,是一個數組。
      SoapServer對象的addFunction方法是用來聲明哪個函數可以被用戶端調用,使用方法如下:

$soap->addFunction($functionName);

$functionName是允許用戶端調用的方法名稱。如果所有的方法都允許調用,可使用下面的方法:

$soap->addFunction(SOAP_FUNCTIONS_ALL);

     SoapServer對象的handle方法用來處理使用者輸入並調用相應的函數,最後返回給用戶端處理的結果。使用方法如下:

$soap->handle([$soapRequest]);

$soapRequest是一個選擇性參數,用來表示使用者的請求資訊。如果不指定$soapRequest,則表示伺服器將接收使用者的全部請求。

2.SoapClient

      SoapClient用於調用遠程伺服器上的SoapServer頁面,並實現了對相應函數的調用,建立一個SoapClient對象的方法如下:

$client = new SoapClient(null,$arr);

 其中,參數$arr與SoapServer相同。穿件SoapClient對象後,調用伺服器端的方法如下:

$client->functionName($p);

functionName()為伺服器端待調用的函數名,$p 為參數。

3.SoapFault

      SoapFault用於產生soap訪問過程中可能出現的錯誤。建立一個SoapFault對象的方法為:

$fault = new SoapFault($code,$msg);

   參數$code為使用者定義的錯誤碼,$msg為使用者定義的錯誤資訊。soapFault對象會在伺服器端頁面出現錯誤時自動產生,或者通過使用者自 行建立SoapFault對象時產生。對於Soap訪問時出現的錯誤,用戶端可通過捕捉SoapFalut對象來獲得相應的錯誤資訊。在用戶端捕獲 SoapFault對象後,可以通過下面的代碼獲得錯誤碼和錯誤資訊:

$fault->code;  //錯誤碼$fault->msg;   //錯誤資訊

 以上就是PHP SOAP模組主要的三個對象介紹,下面我們通過一個簡單的執行個體,協助大家理解一下soap模組的使用方法。

4.PHP SOAP執行個體(NON-WSDL模式)

      伺服器(server)端代碼server.php:

$arr = array(            ‘location‘ => ‘http://192.168.187.132/server.php‘,            ‘uri‘      => ‘http://192.168.187.132/‘        );         $soap = new SoapServer( null ,$arr );                 $soap->addFunction(SOAP_FUNCTIONS_ALL);  //允許用戶端調用所有的方法        $soap->handle();                  function a(){            return ‘李壞部落格‘;        }          function b($b){            return $b;        }   

 用戶端(client)代碼:

$arr = array(            ‘location‘ => ‘http://192.168.187.132/server.php‘,            ‘uri‘      => ‘http://192.168.187.132/‘    );         $soap = new SoapClient( null, $arr );                 echo $soap->a(),‘<br />‘;        echo $soap->b(‘b‘);     

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.