[RESOLU] WEB SERVICE, CLIENT SOAP PHP5.3

Petit nouveau ! | 3 Messages

06 avr. 2016, 11:17

Bonjour, j'essaie de consommer un service web situé à http://footballpool.dataaccess.eu/data/info.wso?wsdl

j'ai créé un fichier ClientAttaquant.php sur la racine du serveur wamp pour afficher la liste des attaquant du Cameroun, et dont voici mon code:

<?php
$ini = ini_set("soap.wsdl_cache_enabled","0");

$client = new SoapClient("http://footballpool.dataaccess.eu/data/info.wso?wsdl");

try {

$attaquant[]=$client->allForwards("Cameroon");

$cpt=0;
while($cpt<sizeof($attaquant)){
echo $attaquant[$cpt]."<br>";
$cpt++;
}

}
catch(Exception $e) {
die($e->getMessage());
}

?>

mais je reçois le message d'erreur suivant sur le navigateur: Error processing request: Missing parameter 'sCountryName'

Je suis bloqué, je ne sais plus ce que j'ai oublié de faire. A l'aide!

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7120 Messages

06 avr. 2016, 12:25

Le message d'erreur me semble plutôt explicite : Il faut que tu indiques un paramètre sCountryName
https://secure.php.net/manual/fr/soapcl ... apcall.php
"Notez que la plupart des serveurs SOAP nécessite des noms de paramètres, auquel cas, ce doit être un tableau associatif. "
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 3 Messages

06 avr. 2016, 12:31

Je te remercie @rthur pour ta prompt réaction.
mais j'ai indiqué le paramètre "Cameroon" qui est un String pour cette méthode allForwards("Cameroon"). Je ne comprends pas pourquoi malgré le paramètre indiqué il y a cette erreur.

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7120 Messages

06 avr. 2016, 13:54

Tu n'as pas lu la 2ème partie de mon message qui cite la doc PHP :
Notez que la plupart des serveurs SOAP nécessite des noms de paramètres, auquel cas, ce doit être un tableau associatif.
Regarde les exemples dans la doc, il faut que tu indiques de façon explicite sCountryName
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 3 Messages

06 avr. 2016, 14:51

Très grand merci @rthur, effectivement il fallait bien comprendre et réécrire selon le modèle dans le lien que tu m'as donné. J'ai retouché comme suivant:
<?php
$ini = ini_set("soap.wsdl_cache_enabled","0");
$url="http://footballpool.dataaccess.eu/data/info.wso?wsdl";
$client = new SoapClient($url);
try {
$param=array('sCountryName'=>'Cameroon');
$attaquant[]=$client->allForwards($param);

$cpt=0;
while($cpt<sizeof($attaquant)){
print_r($attaquant[$cpt]);echo"<BR>";
$cpt++;
}

}
catch(Exception $e) {
die($e->getMessage());
}

?>

il n’y a plus d’erreur; je dois juste parfaire l'affichage. Encore merci.