Utiliser des Webservices en PHP : nuSOAP
J’ai très récemment dû utiliser un webservice développé en .NET afin d’interagir avec un serveur gérant l’ensemble des données clients de plusieurs grandes marques. En fouillant un peu sur la toile à la recherche d’infos sur l’utilisation d’un tel Webservice en PHP, je suis tombé sur la librairie nuSOAP.
N’ayant pas la totale liberté sur le serveur et ne pouvant pas forcément utiliser les dernières classes PHP5 pour l’utilisation de SOAP, j’ai donc simplement installé cette librairie et commencé mes tests. Il se trouve que la récupération et l’envoi de données au serveur se trouve réellement simplifié avec cette librairie.
Une fois téléchargée puis installée (il suffit de copier le dossier lib sur votre serveur), il suffit d’inclure nusoap.php et commencer à interroger le serveur. Voici ce que ça peut donner sur un exemple minimaliste :
require_once('classes/nusoap/nusoap.php');
$clientSOAP = new soapclient('http://adresse-du-webservice.asmx');
// Appel de la fonction GetAllCountries
$result = $clientSOAP->call('GetAllCountries');
L’appel à la fonction GetAllCountries nous renvoie une chaîne que l’on doit parser en XML afin d’en récupérer les données. Il est possible qu’il faille préciser au client SOAP d’utiliser WSDL, il suffit dans ce cas de modifier le constructeur en ajoutant « true» comme second paramètre et « ?WSDL» à la fin de l’adresse comme ceci :
require_once('classes/nusoap/nusoap.php');
$clientSOAP = new soapclient('http://adresse-du-webservice.asmx?WSDL', true);
// Appel de la fonction GetAllCountries
$result = $clientSOAP->call('GetAllCountries');
Une fois la réponse serveur récupérée, on peut donc la parser, en utilisant par exemple simpleXML, que l’on pourra parcourir simplement afin de récupérer les données voulues :
$xml = simplexml_load_string($result['GetAllCountriesResult']);
Afin de pouvoir passer simplement des paramètres au webservice, il suffit de rajouter un tableau en tant que paramètre lors de l’appel de la méthode call :
$result = $clientSOAP->call('GetUserId', array(
'login' => $email,
'password' => $pass
));
Voilà pour la base de l'utilisation de nuSOAP !



Bonjour,
J’ai un service web que j’ai créer en .net . J’arrive à appeler mon service mais je n’arrive pas à récupérer les paramètres que je lui passe. Pourriez-vous m’aider ?
Merci d’avance