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] Consommer un Webservice


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 2
    Points
    2
    Par défaut [Web Service] Consommer un Webservice
    Salut,

    Alors comme le titre le précise j’aimerai consommer un webservice par php. Ce webservice j'arrive à le consommer en utilisant java. Mais j'aimerai utiliser une application web dynamique utilisant PHP. Le problème c'est que j'ai essayé tous avec Nusoap ou la bibliothèque natif, des tutos mais rien je n'arrive à la faire fonctionner, je reçois comme erreur Cannot find the customer.

    L'appel est tous simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
     
    $client = new SoapClient("fichier.wsdl");
    $args=array('coco','titi','12345678','10');
    try { 
    $client->__soapCall("getToken", $args);
    }
    catch (Exception $e)
    {
        echo 'Caught exception: ',  $e->getMessage(), "\n";
    } 
    ?>
    SVP essayer de m'aider. D'ailleurs j'ai remarqué qu'il n y a pas beaucoup de messages qui parlent des webservice (Je me suis est ce que je suis vraiment le seul à avoir ce genre de problème).

    BR

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client->getToken('coco' ,'titi', '12345678', '10');

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Salut,

    J'ai déjà fait ce changement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    $client = new SoapClient("fichier.wsdl");
    $args=array('coco','titi','12345678','10');
    $client->getToken('coco','titi','12345678','10');
    try { 
    $client->__soapCall("getToken", $args);
    }
    catch (Exception $e)
    {
        echo 'Caught exception: ',  $e->getMessage(), "\n";
    } 
    ?>
    Mais d'autres surviennent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Fatal error: Uncaught SoapFault exception: [soap:Server] Cannot find the customer in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\clientSOAP\index.php:5 Stack trace: 
    #0 C:\Program Files (x86)\EasyPHP-5.3.8.1\www\clientSOAP\index.php(5): SoapClient->__call('getToken', Array) 
    #1 C:\Program Files (x86)\EasyPHP-5.3.8.1\www\clientSOAP\index.php(5): SoapClient->getToken('coco','titi','12345678','10') 
    #2 {main} thrown in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\clientSOAP\index.php on line 5
    BR

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    ton code est le même ...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Comment il est le même j'ai ajouté comme tu m'a dit la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client->getToken('coco','titi','12345678','10');
    BR

  6. #6
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par Bahrouz Voir le message
    Comment il est le même j'ai ajouté comme tu m'a dit la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client->getToken('coco','titi','12345678','10');
    BR
    Salut,

    c'est l’exécution de la méthode. C'est la partie qui doit être dans le bloc try

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    try { 
      $client->getToken('coco','titi','12345678','10');
    }
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    J'ai fait la modification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    $client = new SoapClient("fichier.wsdl");
     
    try { 
    $client->getToken('coco','titi','12345678','10');
    }
    catch (Exception $e)
    {
        echo 'Caught exception: ',  $e->getMessage(), "\n";
    } 
    ?>
    Mais j'ai toujours le l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Caught exception: Cannot find the customer
    Any help...

    BR

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    t'as pas d'erreur au niveau de ton code, t'as juste pas les bonne donnée, le service est bon en tout cas

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Le truc c'est que en java ça fonctionne parfaitement et je n'ai rien modifié comme donnée...

    BR

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    J'ai remarqué lorsque j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($client->__getTypes());
    je reçois des types de données comme String, int, est ce que ça peut poser un problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    array
      0 => string 'struct setOutput {
     string arg0;
     int arg1;
     boolean arg2;
    }' (length=1)
     )

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Si ça peut aider voir le simple code en java, sachant qu'avec Java c'est apache Axis que a généré tous les fichiers



    BR

  12. #12
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client = new SoapClient("omniaccess2.wsdl");
    Le wsdl ne devrait pas se trouver sur une adresse web venant du fournisseur du service ?
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Je n'arrive pas à bien comprendre ta question. Le fichier wsdl m'a permis en java de générer automatiquement en utilisant apache et axis les différentes class.

    L'adresse ou se trouve le wsdl est la suivante : https://www.omniscout.ca/omniaccess/ws

    BR

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    J'ai remarqué quelques choses, en java si j'utilise des données erroné pour mon getToken j'obtiens le même type d'erreur Cannot find the customer comme celui en php. Le problème c'est qu'on php j'entre les bons données. Est ce qu'il peut arriver que php change quelques choses!!!

    BR

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Alors j'ai trouvé la solution.

    Il faut suivre le wsdl avec ces déclarations de type complexe type. Il faut créer des variables de type complexetype. En php ça se traduit par un array.

    Example de déclaration de type complexetype :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $Variable=array(  
               'arg0' => 'val1',
               'arg1' => 'val2',
    	   'arg2' => 'val3',
    	   'arg3' => 10
                 );
    Merci pour tous
    BR

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

Discussions similaires

  1. [Web Service] Consommer un service web
    Par legide dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 14/07/2009, 12h12
  2. [Web Service] Consommer un WebService .Net depuis PHP en asynchrone
    Par Joooooon dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 02/04/2009, 16h15
  3. Web service - Consommation
    Par suzchr dans le forum Services Web
    Réponses: 0
    Dernier message: 10/12/2008, 14h49
  4. [Web Service] Consommer un web service avec PHP
    Par tonton93 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 29/10/2008, 15h28
  5. [Web Service][SOAP] NuSOAP Webservice Sur tous serveurs ?
    Par Harry dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/01/2006, 14h59

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