Web Service et PHP5

Eléphanteau du PHP | 13 Messages

08 juil. 2010, 14:33

Bonjour,

J'ai un gros problème de PHP sur un web service. J'ai mis tout le code indiqué, mais rien ne se passe sur ma page. Je précise que je ne maitrise pas le PHP :( .
Voilà mon code :
<?php
// Instanciation du client SOAP
$client = new SoapClient(
'http://93.xxx.xx.x/XXXWS/WS2.asmx?WSDL',
array(
'trace'=> 1,
'soap_version'=> 'SOAP_1_2'));
$params = array();

$params['p_criteres'] = array(
// ID de l'export web Sitra
'IdSiteWeb'=>'XXX',
// Clé d'accès au web service
'CleWS'=>'XXXX',
// Type du format de retour (LIGHT, GPS, COMPLETE)
'TypeSortie'=>'LIGHT',
// Mode de restitution (OBT, PERIODE, JOUR)
'CodeRestitution'=>'',
// Code de la sélection à afficher
'Selection'=>'',
//Date Début
'DateDebut'=>'2009-07-21',
//DateFin
'DateFin'=>'2009-07-28',
//Gratuit
'Gratuit'=>'',
//Positionnement
'PositionnementValide'=>'',
//Mobilite
'MobiliteReduite'=>'',
//Tri
'Tri'=>'DEB|COM',
//Reuslts
'NombreResultatsParPage'=>'10',
//Num page
'NumPage'=>'1'
);
//Il faut ensuite faire appel à la fonction DetailObjets :
$retour_ws = $client -> RechObts($params);
?>

Merci d'avance de votre aide. J'en ai vraiment besoin car je nage compètement depuis des jours avec ce WS et je dois le livrer le plus tôt possible.

Cordialement
yves8

ViPHP
ViPHP | 5462 Messages

08 juil. 2010, 14:41

c'est __soapCall pour les appels

Eléphanteau du PHP | 13 Messages

08 juil. 2010, 15:01

Merci pour ton aide,

mais si je le mets comme suit :
$retour_ws = $client -> __soapCall($params);

on me retourne les erreurs :

Warning: SoapClient::__soapCall() expects at least 2 parameters, 1 given in D:\www\si-cerdon.fr\htdocs\sitratest.php on line 191

Fatal error: SoapClient::__soapCall() [<a href='soapclient.--soapcall'>soapclient.--soapcall</a>]: Invalid parameters in D:\www\si-cerdon.fr\htdocs\sitratest.php on line 191

ViPHP
ViPHP | 5462 Messages

08 juil. 2010, 15:11

lis bien la doc :wink:
public mixed SoapClient::__soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )

Eléphanteau du PHP | 13 Messages

08 juil. 2010, 15:30

oh là là, je lis, mais je n'y comprends rien du tout. Surtout où et comment placer cela #-o #-o

ViPHP
ViPHP | 5462 Messages

08 juil. 2010, 15:34

$client -> __soapCall('tafonction', $params);
donc
$client -> __soapCall('RechObts', $params);

Eléphanteau du PHP | 13 Messages

08 juil. 2010, 16:11

merci pour cette réponse, mais je n'ai toujours rien qui s'affiche sur ma page. :cry:

ViPHP
ViPHP | 5462 Messages

08 juil. 2010, 16:13

merci pour cette réponse, mais je n'ai toujours rien qui s'affiche sur ma page. :cry:
mais t'as toujours des erreurs ?

Eléphanteau du PHP | 13 Messages

08 juil. 2010, 16:20

non, je n'ai plus d'erreur, je n'ai qu'une page blanche. Alors je ne sais même pas si je suis connecté ou pas au WS

ViPHP
ViPHP | 5462 Messages

08 juil. 2010, 16:24

non, je n'ai plus d'erreur, je n'ai qu'une page blanche. Alors je ne sais même pas si je suis connecté ou pas au WS
fais un
var_dump($retour_ws);

Eléphanteau du PHP | 13 Messages

08 juil. 2010, 16:26

Je l'ai fais et il affiche NULL sur la page

ViPHP
ViPHP | 5462 Messages

08 juil. 2010, 16:32

Je l'ai fais et il affiche NULL sur la page
il est censé renvoyer quoi ?

active use_soap_error_handler
essaye avec un try...catch sinon

Eléphanteau du PHP | 13 Messages

08 juil. 2010, 16:38

il est censé renvoyer des données touristiques "hôtels, campings, fêtes diverses etc..."
Il est bien marqué de faire un try catch sur le modèle, mais j'ai fais des recherches et je n'ai rien trouvé sur internet qui m'indique vraiment comment le faire. J'ai bien essayé plusieurs fois, mais j'ai toujours des erreurs sur catch.
Et comme je l'ai mis au début du topic, je ne maitrise pas du tout le php, donc je suis dans le bourbier.

Encore merci de ta patience

ViPHP
ViPHP | 5462 Messages

08 juil. 2010, 16:40

comme ca :wink:
try
{
    $client->__soapCall('RechObts', $params);
}
catch(Exception $e)
{
    echo $e->getMessage();
}

Eléphanteau du PHP | 13 Messages

08 juil. 2010, 16:48

juste avant que j'essaie le try catch que tu m'as mis, je ne sais pas ce que j'ai fais mais il m'a indiqué l'erreur suivante :

object(stdClass)#2 (1) { ["RechObtsSelectionResult"]=> object(stdClass)#3 (5) { ["Erreur"]=> string(82) "Paramètre IdSiteWeb : ce paramètre est obligatoire et doit être de type entier." ["NumPage"]=> int(0) ["NbObjetsDsPage"]=> int(0) ["NbTotalObjets"]=> int(0) ["NbTotalPages"]=> int(0) } }