Utilisation d'un Web Service
Résolu
alderion
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je viens de comprendre comment il était possible d'utiliser un web service en utilisant l'exemple disponible via ce lien:
https://www.developpez.net/forums/d1178398/php/bibliotheques-frameworks/web-service-appeller-webservice-php/
J'ai donc adapté cet exemple pour tenter de me connecter à un autre service web.
Voici mon code une fois modifié:

Lors de son exécution, je rencontre cette erreur:
Catchable fatal error: Object of class stdClass could not be converted to string in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\index.php on line 13
Je suppose donc que les données que je rapatrie dans la variable $res ne peuvent pas être converties en chaîne de caractère.
J'ai parcouru le fichier WSDL du service web (http://xtract.basgroup.nl/Xtract.asmx?WSDL) afin de savoir comment se présentent les données que je récupère, en vain.
Qu'est-ce qu'un objet de classe stdClass?
Pouvez-vous m'aider à sortir de ce pétrin?
Merci d'avance.
Je viens de comprendre comment il était possible d'utiliser un web service en utilisant l'exemple disponible via ce lien:
https://www.developpez.net/forums/d1178398/php/bibliotheques-frameworks/web-service-appeller-webservice-php/
J'ai donc adapté cet exemple pour tenter de me connecter à un autre service web.
Voici mon code une fois modifié:

<?php ini_set('default_socket_timeout', 60); $wsdl = "http://xtract.basgroup.nl/Xtract.asmx?WSDL"; $client = new SoapClient($wsdl); $customerID=123456; $password='password'; $res = $client->GetProducts(array('customerID' => $customerID , 'password' => $password)); print $res->GetProductsResult; ?>
Lors de son exécution, je rencontre cette erreur:
Catchable fatal error: Object of class stdClass could not be converted to string in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\index.php on line 13
Je suppose donc que les données que je rapatrie dans la variable $res ne peuvent pas être converties en chaîne de caractère.
J'ai parcouru le fichier WSDL du service web (http://xtract.basgroup.nl/Xtract.asmx?WSDL) afin de savoir comment se présentent les données que je récupère, en vain.
Qu'est-ce qu'un objet de classe stdClass?
Pouvez-vous m'aider à sortir de ce pétrin?
Merci d'avance.
A voir également:
- Utilisation d'un Web Service
- Web office - Guide
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Service spouleur - Guide
- Creer un site web - Guide
4 réponses
Salut
je n'ai pas compris d'où vient GetProductsResult
As-tu essayer de faire un print de $res seul ?
je n'ai pas compris d'où vient GetProductsResult
As-tu essayer de faire un print de $res seul ?
Merci pour l'aide, mais j'ai finalement trouvé comment faire:
<?php // Je modifie la valeur "default_socket_timeout" de la configuration php afin de laisser le temps à mon script de fonctionner. ini_set('default_socket_timeout', 60); // Je range dans une variable l'adresse du Web Service. $wsdl = "http://xtract.basgroup.nl/Xtract.asmx?WSDL"; // Je fournis un client SOAP à l'aide de la classe PHP SoapClient(). $client = new SoapClient($wsdl); // Je range les informations attendues par le Serveur dans des variables. $customerID=26221557; $password="******"; // Vous ne pensiez tout de même pas que j'allais mettre mon mot de passe ;-) ? // Je fais correspondre les variables de notre script avec celles attendues par le serveur. // J'ai volontairement utilisé les mêmes noms que ceux attendus par le web service. $res = $client->GetProducts(array('customerID' => $customerID , 'password' => $password)); // J'ouvre en lecture et écriture le fichier qui va récupérer les informations. $products_file = fopen ("produits.xml", "r+"); // J'y injecte le résultat. $contenu_du_fichier = fputs ($products_file,serialize($res->GetProductsResult)); // Je referme le fichier. fclose ($products_file); ?>