2013-03-27 101 views
0

我被要求查看使用SOAP服務同步數據。我根本不瞭解SOAP,所以我得到一個錯誤的請求錯誤。SOAP客戶端請求 - >錯誤請求

我想調用的函數是一個測試回波功能:

公共字符串EchoAuthenticated(字符串文本)

每次我把它叫做我得到一個錯誤。

我已經註釋掉了用戶名/密碼設置,因爲我現在不知道用戶名和密碼,我的聯繫人正在休假:(現在雖然我很高興只是爲了獲得驗證失敗的消息而不是錯誤...

如果任何人都可以點我朝着正確的方向,請...

感謝,

約翰

<?php 

$apiUrl   = 'https://exdev.api.propctrl.co.za/v3/Integration.svc?wsdl'; 
$options  = array('trace' => 1, 'exceptions' => 1, 'soap_version' => SOAP_1_2); 

try 
{ 
    $client  = new SoapClient($apiUrl, $options); 

    //$data  = array(
    // 'Username'   => "test", 
    // 'Password'   => "test" 
    //); 

    //$header = new SoapHeader('https://exdev.api.propctrl.co.za/v3/', 'CredentialsHeader', $data, false); 
    //$client->__setSoapHeaders($header); 

    var_dump($client->__getFunctions()); 


    print $client->EchoAuthenticated("Test String"); 
    var_dump($client->__getLastRequest()); 

} 
catch(Exception $e) 
{ 
    echo $e->getMessage(); 
} 

?> 

回答

0

您可以嘗試類似:

... 
$client  = new SoapClient($apiUrl, $options); 

var_dump($client->__getFunctions()); 

$auth = array("Username" => "John", "Password" => "secret", 
    "IsP24Credentials" => false); 
$header = new SoapHeader("https://www.propctrl.com/", "CredentialsHeader", 
    $auth, FALSE); 
$client->__setSoapHeaders($header); 

print $client->EchoAuthenticated(array( 
    "text" => "My text to be echoed." 
)); 
var_dump($client->__getLastRequest()); 
... 

這將導致這樣的懇求SOAP請求:

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="https://www.propctrl.com/v3" xmlns:ns2="https://www.propctrl.com/"> 
    <env:Header> 
     <ns2:CredentialsHeader> 
     <ns2:IsP24Credentials>false</ns2:IsP24Credentials> 
     <ns2:Password>secret</ns2:Password> 
     <ns2:Username>John</ns2:Username> 
     </ns2:CredentialsHeader> 
    </env:Header> 
    <env:Body> 
     <ns1:EchoAuthenticated> 
     <ns1:text>My text to be echoed.</ns1:text> 
     </ns1:EchoAuthenticated> 
    </env:Body> 
</env:Envelope> 

作爲一個側面說明,你可以看看http://www.soapui.org/。這個工具在Web服務開發方面有很大幫助。

+0

嘿馬塞勒斯,謝謝你的回覆。我沒有得到那個工作,但是我要下載soapui,看看發送了什麼...... – 2013-03-27 20:23:09