IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Web Service][SOAP] Passage de paramètre


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 11
    Points
    11
    Par défaut [Web Service][SOAP] Passage de paramètre
    bonjour à tous,

    je cherche à utiliser Pear soap pour interroger des webservice .net via PHP4.
    Pour tester j'ai à ma disposition un webservice helloworld auquel je veux passer un paramètre de type int.

    J'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $wsdl = 'http://192.168.1.1/AA/Service1.asmx?wsdl';
     
    require_once('SOAP/Client.php');
     
    $owsdl =  new SOAP_WSDL( $wsdl );
    $client = $owsdl->getProxy();
    $param = array(
    	'NombreDeFoisQueTuVeuxLAfficher' => 5);
     
     
    $result = $client->HelloWorld($params);
    echo $result;

    J'obtiens bien un retour du webservice mais mon paramètre n'est pas passé ou sa valeur = 0. Alors qu'il devrait être égal à 5.

    j'ai aussi essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $result = $client->HelloWorld(5);
    même résultat.

    Une idée ?

    Merci d'avance.

    PS: à noter qu'en php5 tout fonctionne bien.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Suite
    Je poursuit avec mes problèmes, cette fois en php5 :

    Voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $wsdl = 'http://192.168.87.14/AA/Service1.asmx?wsdl';
    $client = new SoapClient($wsdl);
    $param->NombreDeFoisQueTuVeuxLAfficher = new SoapVar(5, XSD_INTEGER );
     
    $result = $client->HelloWorld($param);
    echo $result->HelloWorldResult;
    Il fonctionne sans problème tant que le namespace de mon webservice est http://tempuri.org/

    Par contre s'il devient : http://192.168.1.1/AA/, ça ne fonctionne plus.
    J'obtient :

    SoapFault exception: [soap:Client] Le serveur n'a pas reconnu la valeur de l'entête HTTP SOAPAction : http://tempuri.org/HelloWorld. in C:\xampp\htdocs\TestDeWebServiceEnPHP\SimpleMessage\SoapClientEMS_5.php:77 Stack trace: #0 [internal function]: SoapClient->__call('HelloWorld', Array) #1 C:\xampp\htdocs\TestDeWebServiceEnPHP\SimpleMessage\SoapClientEMS_5.php(77): SoapClient->HelloWorld(Object(stdClass)) #2 {main}
    Je me doute bien que je dois renseigner quelque part le namespace à utiliser, mais je n'y parvient pas.


    Au Secour !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Je viens de résoudre mon problème avec php5 en ajoutant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ini_set("soap.wsdl_cache_enabled", "0");
    à suivre....

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Voilà la suite :

    enfin ça fonctionne en php4 et en php5.

    1. pour la version 4 :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
       
      $wsdl = 'http://192.168.87.14/WebService1/Service1.asmx?wsdl';
      $ns = '{http://tempuri.org/}';
      require_once('SOAP/Client.php');
      $cache = new SOAP_WSDL_Cache();
      • Première possibilité :
        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        1
        2
        3
        4
        5
        6
         
        $owsdl =  new SOAP_WSDL( $wsdl );
        $client1 = $owsdl->getProxy();
        $value = new SOAP_Value($ns.'NombreDeFoisQueTuVeuxLAfficher', 'int', 5);
        $result = $client1->HelloWorld($value);
        echo $result;

      • Deuxième possibilité :
        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        1
        2
        3
        4
        5
         
        $client2 = new SOAP_Client($wsdl);
        $values = array( 'NombreDeFoisQueTuVeuxLAfficher' => new SOAP_Value($ns.'NombreDeFoisQueTuVeuxLAfficher', 'int', 5)  );
        $result2 = $client2->call('HelloWorld',$values);
        echo $result2;



    1. Pour la version 5 :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
       
      ini_set("soap.wsdl_cache_enabled", "0");
      $EMS_WS_NAMESPACE = 'http://192.168.87.14/AA/';
       
      $wsdl = 'http://192.168.87.14/AA/Service1.asmx?wsdl';
      $client = new SoapClient($wsdl);
      $param->NombreDeFoisQueTuVeuxLAfficher = new SoapVar(5, XSD_INTEGER, null, null, null, 'http://192.168.87.14/AA/' );
       
      $result = $client->HelloWorld($param);
      echo $result->HelloWorldResult;

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 19
    Points
    19
    Par défaut
    Merci infiniment pour ces infos SDuh !
    Cela m'a été très utile

    Morgann

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Web Service][SOAP] passage de paramètre en php4 avec nusoap
    Par jbbordas dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 28/02/2008, 15h38
  2. [Web Service][SOAP] Récupérer des paramètres dans l'entête
    Par Dadou dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 24/01/2008, 13h51
  3. [Web Service][SOAP] NUSOAP et envoi des paramètres
    Par XGotX dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 13/03/2007, 12h25
  4. [Web Service][SOAP] nusoap : définir paramètres facultatif
    Par Florent08800 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/01/2007, 16h21
  5. [Web Service][SOAP] Probleme de passage de parametres
    Par _Froggy_ dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 22/03/2006, 20h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo