Bonjour à tous,
Voilà j'essaie de communiquer en vain, avec un webservice par l'intermédiaire d'un client PHP.
Je n'ai jamais utilisé SOAP. J'ai donc suivi plusieurs tutoriels afin de comprendre comment cela fonctionne.
en résumé je devrais arriver à ce résultat :
et moi lorsque j'affiche ma requête XML, j'arrive à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:mrw="http://www.mrw.es/"> <soap:Header> <mrw:AuthInfoSWGE> <mrw:Cliente>cliente</mrw:Cliente> <mrw:Password>password</mrw:Password> <mrw:Franquicia>franquicia</mrw:Franquicia> </mrw:AuthInfoSWGE> </soap:Header> <soap:Body> <mrw:nomMethode> <!--Optional:--> <mrw:request> <mrw:Fecha>31/05/2012</mrw:Fecha> etc... </mrw:request> </mrw:nomMethode> </soap:Body> </soap:Envelope>
Comme vous pouvez le constatez ma balise <body> ne contient rien : les paramètres ne sont pas passés. Il y a juste le nom de la méthode qui s'affiche avec un '/' à la fin ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://www.mrw.es/"> <env:Header> <ns1:AuthInfoSWGE> <ns1:Cliente>cliente</ns1:Cliente> <ns1:Password>password</ns1:Password> <ns1:Franquicia>franquicia</ns1:Franquicia> </ns1:AuthInfoSWGE> </env:Header> <env:Body> <ns1:nomMethode/> </env:Body> </env:Envelope>
Pour finir voici mon code PHP :
Si quelqu'un a déjà rencontré le même genre de problème, tous conseils, indices etc.. sont les bienvenus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?php $wsdl = "http://urlxxxxxx?wsdl"; ini_set($wsdl, "0"); // disabling WSDL cache $client = new SoapClient($wsdl,array('encoding'=>'ISO-8859-1','soap_version'=> SOAP_1_2, 'trace'=> 1)); $headers->Cliente = 'cliente'; $headers->Password= 'password'; $headers->Franquicia= 'franquicia'; $header = new SoapHeader('http://www.mrw.es/', 'AuthInfoSWGE', $headers, false); $client->__setSoapHeaders($header); $parameters = array('Fecha' => '06/06/2012', etc... ); $result = $client->nomMethode($parameters); echo "REQUEST: " . $client->__getLastRequest();
Partager