2013-06-19 22 views
0

我有webservice,當在瀏覽器中打開時顯示一個xml文件。我連接到webser與這些線PHP-SOAP確定存在的方法

$client = new SoapClient("http://XXXXXXXXX/webservice/test?wsdl"); 

打印出$客戶端將顯示此:

SoapClient Object 
    (
     [_soap_version] => 1 
     [sdl] => Resource id #4 
) 

現在,我的問題是如何做我的用戶在XML文件中的一些方法presnt只是通過觀察xml文件?這是因爲我想檢索和驗證一些數據然後操縱它。

我該怎麼做?我做對了嗎? PS:只是爲了讓事情擺在上下文中,我能夠通過瀏覽器訪問xml來查看它。不知何故,這是唯一給予我的東西。如果可以在PHP中玩遊戲,那麼我會很感激這些回覆。

感謝

回答

4

如果你知道函數的名稱,和該函數的參數可以調用func。

$client = new SoapClient("http://XXXXXXXXX/webservice/test?wsdl"); 
$info = $client->__soapCall('Name of function' array('param1' => 1, 'param2' => 2); 

如果你不知道的參數的準確名稱,這將有助於

var_dump ($client->__getTypes()); 
+0

謝謝!這正是我需要的。只是爲了澄清,括號內的例子。 [1] => struct method1 {int id;字符串用戶名} ... ID和用戶名是正確的參數? – oneofakind

+1

是的,這些是參數 – NemanjaLazic

+0

謝謝NemanjaLazic非常感謝您的回覆。我現在的問題是檢索數據,因爲它仍然返回一個錯誤,說「處理時發生SoapFault異常:[soap:Server]故障。」但是,至於在這個線程中的問題,這是很好的。謝謝。但是,如果你能夠闡明這一點,將非常感激。無論如何,再次感謝。 – oneofakind

1

檢查php.net的SoapClient的文檔:http://php.net/manual/en/class.soapclient.php

正如你可以看到有用於獲取可用的功能的方法:SoapClient::__getFunctions

+0

跟進的問題..現在當我打電話它表示「處理過程中發生故障」。它可能是參數。我如何知道它的參數是什麼? – oneofakind

+0

將呼叫包裹在「try ... catch」塊中。 SoapFault通常包含這個問題。 也檢查WSDL,它包含函數的參數。 – Fracsi

+0

我做了它只顯示這個「SoapClient - > __調用('網聊',數組)」我仍然不知道這個調用需要什麼參數。有沒有辦法通過在XML中查看?如果是這樣,怎麼樣? – oneofakind

0

獲得方法和參數

$client = new SoapClient("http://my_exposed_url?wsdl"); 
    var_dump($client->__getFunctions());  
    var_dump($client->__getTypes());