2010-06-29 2 views
0

J'ai un objet Zend_Soap_Client, et je suis en train d'appeler une méthode sur elle:demande Zend_Soap_Client crée les paramètres spécifiés mais ne fixe pas les valeurs dans le fichier XML résultant qui est envoyé

$soapClient = new Zend_SoapClient('my_wsdl'); 

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

$soapClient->GetSoapRequest($params); 

echo $soapClient->getLastRequest(); 

Je voudrais attendre à voir:

<?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> 

Mais ce que je vois en fait est:

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

il crée t Il corrige les champs mais ne les peuple pas avec le contenu.

+0

Etes-vous sûr que c'est la bonne façon de transmettre les paramètres? Avez-vous un lien manuel quelque part? –

+0

Je suis parti avec ce basé sur http://www.prodevtips.com/2009/06/08/zend-soap-client-example-talking-with-java-services/ si docs à http: // framework .zend.com/manual/fr/zend.soap.client.html suggère que je devrais utiliser: $ soapClient-> GetSoapRequest ('nom d'utilisateur', 'bonjour'); Bien que si je fais que le résultat est:
bonjour Remarquez comment les paramètres sont en dehors de GetSoapRequest, et le premier est complètement ignoré. – Colin

+0

Désolé, le formatage est perdu dans le commentaire - voir http://pastebin.com/zCcXB7DB – Colin

Répondre

0

A trié cela maintenant. Je devais passer plus de structure dedans. Je devine que le code que j'ai fourni était valide, si le WSDL l'avait spécifié de cette manière. Pour cela, j'ai besoin de quelque chose comme:

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

Merci pour l'aide Pekka - désolé pour la perte de temps.

Questions connexes