2010-06-29 16 views
0

我有一個Zend_Soap_Client對象生成的XML不設置值,而我試圖調用它的方法:Zend_Soap_Client請求創建指定的參數,但在發送

$soapClient = new Zend_SoapClient('my_wsdl'); 

$params = array(
    'Login' => 'username', 
    'Message' => 'hello' 
); 

$soapClient->GetSoapRequest($params); 

echo $soapClient->getLastRequest(); 

我會期望看到:

<?xml version="1.0" encoding="UTF-8"?> 
<env:Envelope ...> 
<env:Body> 
    <ns1:GetSoapRequest> 
    <ns1:Message>hello</ns1:Message> 
    <ns1:Login>username</ns1:Login> 
    </ns1:GetSoapRequest> 
</env:Body> 
</env:Envelope> 

但我實際上看到的是:

<?xml version="1.0" encoding="UTF-8"?> 
<env:Envelope ...> 
<env:Body> 
    <ns1:GetSoapRequest> 
    <ns1:Message/> 
    <ns1:Login/> 
    </ns1:GetSoapRequest> 
</env:Body> 
</env:Envelope> 

所以它創建ŧ他正確的領域,但不填充他們的內容。

+0

你確定這是傳遞參數的正確方法嗎?你有手動鏈接嗎? – 2010-06-29 11:54:33

+0

我以前用http://www.prodevtips.com/2009/06/08/zend-soap-client-example-talking-with-java-services/爲基礎,雖然http://框架中的文檔.zend.com/manual/en/zend.soap.client.html會建議我應該使用: $ soapClient-> GetSoapRequest('username','hello'); 雖然如果我這樣做的結果是:
你好 注意如何參數在GetSoapRequest之外,第一個被完全跳過。 – Colin 2010-06-29 12:10:47

+0

對不起,格式化在評論中丟失 - 請參閱http://pastebin.com/zCcXB7DB – Colin 2010-06-29 12:13:08

回答

0

已經排序了。我需要傳遞進一步的結構。我猜測,如果WSDL以這種方式指定的話,我提供的代碼是有效的。雖然我需要沿線的東西:

$params = array(
    'Login' => array('username' => 'username', 'password' => 'password'), 
    'Message' => array('body' => 'hello') 
); 

感謝您的幫助佩卡 - 抱歉浪費時間。