Soap et problème de date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Soap et problème de date

Soap et problème de date

par Cham » 02 nov. 2006, 23:02

Bonjour,

je découvre la méthode SOAP, et il y a quelques subtilités qui m'échappent...

A partir d'un serveur Apache et en PHP, je dois aller lire des fonctions sur un serveur distant tournant sous IIS.
Ces fonctions sont regroupées dans un exécutable sur ce serveur distant, et activé comme un service Web.

Ces fonctions me permettent de faire des réservations en ligne.

J'ai le fichier de déclaration WSDL que j'ai mis dans mon répertoire courant (je ne sais pas si c'est la bonne méthode), et qui contient l'adresse du service distant:

Code : Tout sélectionner

<service name="ISVRWEBservice"> <port name="ISVRWEBPort" binding="tns:ISVRWEBbinding"> <soap:address location="http://xxx.xxx.xxx.xxx/ServeurWeb/SVRWeb.exe/soap/ISVRWEB" /> </port> </service>
dans mon fichier php principal, j'appelle les fonctions de ce service:

Code : Tout sélectionner

// première étape : désactiver le cache lors de la phase de test ini_set("soap.wsdl_cache_enabled", "0"); // lier le client au fichier WSDL $clientSOAP = new SoapClient("ISVRWEBservice.wsdl"); // executer la methode qui demande la version echo "Version: ".$clientSOAP->GetVersionServeur()."<br>"; $seance = array( 'NoComplexe' => 1, 'NoSalle' => 1, 'Heure' => date("d/m/Y H:i:s", mktime(14, 0, 0, 10, 24, 2006)) ); echo "Places restantes: ".$clientSOAP->GetPlaceRestante($seance, 0, 0, '')."<br>";

J'arrive, a priori, bien à utiliser le service car la première fonction me retourne bien le numéro de la version.
par contre, j'ai un problème de date sur la 2ème fonction (pourtant j'ai testé que $seance['Heure'] est bien correctement renseigné)

Voici le message d'erreur que j'ai:

Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Server] Chaine date incorrecte : 24/10/2006 14:00:00 in C:\wamp\www\test\test.php:38
Stack trace: #0 [internal function]: SoapClient->__call 'GetPlaceRestant...', Array) #1 C:\wamp\www\test\test.php 38 :
SoapClient->GetPlaceRestante(Array, 0, 0, '') #2 {main} thrown in C:\wamp\www\test\test.php on line 38

J'ai lancé la commande __getTypes(), dont voici le résultat pour la structure $seance:

Code : Tout sélectionner

struct TSeanceParam { int NoComplexe; int NoSalle; dateTime Heure; }
Merci de votre aide,
Sylvie