Web services : Client SOAP PHP

Avatar du membre
Petit nouveau ! | 2 Messages

23 sept. 2015, 10:30

Bonjour,

Je suis en train de créer un client pour communiquer avec un web services, mais je suis bloqué sur une erreur d'authentification.
Voici le code de test que j'ai :

Code : Tout sélectionner

<?php // la requête soap $data='POST /API/API.asmx HTTP/1.1 Host: api.xxx.net Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://tempuri.org/GetHotels" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetHotels xmlns="http://tempuri.org/"> <request> <AGENTINFO> <AGENT_ID>xxx</AGENT_ID> <AGENT_PWD>xxx</AGENT_PWD> </AGENTINFO> <PASSENGERLIST> <PASSENGER> <ID>1000</ID> <TITLE>titre1</TITLE> <LASTNAME>lastname1</LASTNAME> <FIRSTNAME>firstname1</FIRSTNAME> <PASSTYPE>ADT</PASSTYPE> <DOB>12.02.1990</DOB> <GENDER>MR</GENDER> </PASSENGER> <PASSENGER> <ID>1001</ID> <TITLE>titre2</TITLE> <LASTNAME>lastname2</LASTNAME> <FIRSTNAME>firstname2</FIRSTNAME> <PASSTYPE>ADT</PASSTYPE> <DOB>05.11.1980</DOB> <GENDER>MR</GENDER> </PASSENGER> </PASSENGERLIST> <TOWNCODE>Alanya</TOWNCODE> <CHECKINDATE>02.11.2015</CHECKINDATE> <CHECKOUTDATE>10.11.2015</CHECKOUTDATE> <HOTELCODE>BA</HOTELCODE> <LANGUAGECODE>ENG</LANGUAGECODE> </request> </GetHotels> </soap:Body> </soap:Envelope>'; // connexion au web services $wsdl="http://api.xxx.net/API/API.asmx?WSDL"; $user="xxx"; $pwd="xxx"; try{ $auth = array( 'login' => $user, 'password' => $pwd, "authentication" => SOAP_AUTHENTICATION_BASIC, "trace" => true, "exceptions" => 0, "cache_wsdl" => WSDL_CACHE_NONE ); $sClient = new SoapClient($wsdl, $auth); echo "<h2>TRY response</h2>"; // récupération de la réponse $response = $sClient->GetHotels($data); echo "<form><TEXTAREA readonly rows=20 cols=132>"; print_r($response); echo "</TEXTAREA></form>"; } // récupération de l'erreur catch(SoapFault $e){ echo "<h2>CATCH response</h2>"; echo "<form><TEXTAREA readonly rows=20 cols=132>"; print_r($e); echo "</TEXTAREA></form>"; } ?>