Je cherche depuis mon site a appelé un webservice sur une machine distante. Est-ce possible ?
Quelqu'un pourrait-il m'indiquer la marche à suivre svp merci. Je n'ai jamais fait et avoue être un peu perdu...
Cdlt,
Mega
<?php
$client = new SoapClient("http://xx.xx.xx.xx/LesServices/MonServiceEnQuestion.asmx?wsdl");
//pour récupérer toutes les méthodes du service en question
$arFunctions = $client->__getFunctions();
foreach ($arFunctions as $function) {
echo $function.'<br/>'."
";
}
//mini-test perso
echo '<h2>';
echo date("d-m-Y");
echo '</h2>';
try{
$client = new SoapClient("http://xx.xx.xx.xx/LesServices/MonServiceEnQuestion.asmx?wsdl");
$param = array('MaFonction' => array('champ1'=>'valchamp1', 'champ2'=>'valchamp2', 'champ3'=>'valchamp3'));
print_r($param);
$result = $client->__soapCall ('MaFonction', $param);
print_r($result);
} catch (SoapFault $fault) {
echo 'erreur : '.$fault;
}
?>
Mega
$result = $client->__soapCall ('Login', $param);foreach ($result as $element) {
$param2 = array('ExecuteSql' => array('id'=>$element, 'requete'=>$req));
}
J'ai ensuite fait :$result2 = $client2->__soapCall ('ExecuteSql', $param2);
mais nada, nothing, que de chi à part :
$result = $client->Login($param);
appeler directement via __call est obsolèteAttention tout de même la méthode est obsolète aux dire de la doc : http://fr.php.net/manual/fr/soapclient.call.php
Pour ton problème il faudrait que tu tests ta requête soap séparément...
Tu te débrouilles pour avoir un id de session dont tu es sûr de l’existence et tu test le tout en dur...
$result2 = $client2->__soapCall ('ExecuteSql', $param2);
Le résultat retourné est :
stdClass Object ( [ExecuteSqlResult] => )
Le var_dump, lui, renvoie :
object(stdClass)#4 (1) { ["ExecuteSqlResult"]=> string(283) "" }
Cdlt,
try
{
$result2 = $client2->ExecuteSql($param2);
}
catch(SoapFault $e)
{
exit($e->getMessage());
}
var_dump($result2->ExecuteSqlResult)ou var_dump($result2['ExecuteSqlResult'])ou