Page 1 sur 1

Web services : Client SOAP PHP

Posté : 23 sept. 2015, 10:30
par clementinemonrency
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>"; } ?>