Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Services Web
Services Web Forum d'entraide pour les services Web en PHP, qui permettent de créer et de consommer facilement des webservices (génération de WSDL etc.). Exemples : SOAP, NuSOAP, REST, SCA-SDO... Avant de poster -> Cours webservices
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/04/2008, 20h50   #1
Invité de passage
 
Inscription : décembre 2004
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 3
Points : 1
Points : 1
Par défaut [SOAP] SoapClient : utilisation

Bonjour,

Je suis en train de réaliser une application qui doit utiliser un service web afin d'envoyer des sms. Pour ce faire, j'utilise le service "aspsms.com".

J'ai créé un premier script qui utilise SoapClient. Cependant, quelque chose m'échappe lors de l'appel d'une méthode sur le serveur. J'ai testé les deux variantes possibles mais je n'obtiens pas le même résultat.

Script php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
	$client = new SoapClient("https://webservice.aspsms.com/aspsmsx.asmx?WSDL", array('trace' => 1, 'soap_version' => SOAP_1_2));
 
 
	$obj = $client->CheckCredits("userkey", "password");
 
	echo $client->__getLastRequest() . "\n";
 
	$param = array(array(
	  "UserKey" => "userkey",
	  "Password"  => "password"
	  ));
 
	$obj = $client->__soapCall("CheckCredits", $param);
 
	echo $client->__getLastRequest() . "\n";
Résultat :
Code :
1
2
3
4
5
6
 
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://webservice.aspsms.com/"><env:Body><ns1:CheckCredits/><param1>password</param1></env:Body></env:Envelope>
 
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://webservice.aspsms.com/"><env:Body><ns1:CheckCredits><ns1:UserKey>userkey</ns1:UserKey><ns1:Password>password</ns1:Password></ns1:CheckCredits></env:Body></env:Envelope>
Constatation :
La première requête n'est pas valide... La seconde fonctionne parfaitement.

Question :
Pourquoi la première méthode utilisée ne génère pas la même requête que la seconde ? Ai-je fais une faute ?

Merci d'avance...
racing66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 10h31   #2
Membre éclairé
 
Homme
Développeur Web
Inscription : avril 2004
Messages : 319
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2004
Messages : 319
Points : 325
Points : 325
Bonjour !

Perso j'ai toujours utilisé ta deuxième méthode, c'est-à-dire passer par la fonction soapCall.
Pour la première c'est un peu bizarre, il comprend le 2e paramètre comme le premier et l'unique. A mon avis si tu veux utiliser la premiere méthode, il faut trouver la bonne syntaxe.

Essaie de faire des tests du genre :
Code :
1
2
3
4
$obj = $client->CheckCredits($param);
$obj = $client->CheckCredits(array("Userkey"=>"userkey", "Password"=>"password");
// Un premier paramètre à trouver...
$obj = $client->CheckCredits( ??, array("Userkey"=>"userkey", "Password"=>"password");
Enfin voila.
Mais bon si la 2e méthode fonctionne pourquoi te poser des questions comme ca ?
Guybrush113 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2008, 07h55   #3
Invité de passage
 
Inscription : décembre 2004
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 3
Points : 1
Points : 1
Merci pour ta réponse... Je me suis posé la question par curiosité...

Mais je vais utiliser la seconde solution.
racing66 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h23.


 
 
 
 
Partenaires

Hébergement Web