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] Utilisation d'un service web C# à partir de PHP


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Points : 103
    Points
    103
    Par défaut [Web Service] Utilisation d'un service web C# à partir de PHP
    Bonjour,

    Tout est dans le titre...
    Lorsque j'essaye d'utiliser mon service web écrit en c# je reçois cet erreur :
    SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost/ws/MyFirstWebService.asmx?wsdl' : failed to load external entity "http://localhost/ws/MyFirstWebService.asmx?wsdl" in E:\PROGRAM FILES\EasyPHP-5.3.6.0\www\index.php:14 Stack trace: #0 E:\PROGRAM FILES\EasyPHP-5.3.6.0\www\index.php(14): SoapClient->SoapClient('http://localhos...') #1 {main}
    Je précise que mon service web fonctionne et que je tombe bien sur le wsdl via http://localhost/ws/MyFirstWebService.asmx?wsdl

    Merci pour votre aide.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    try
    {
     
       $client = new SoapClient('http://localhost/ws/MyFirstWebService.asmx?wsdl');
       echo $client->HelloWorld('pedro');
     
     
    } catch (SoapFault $fault) {
                $error = 1;
                print($fault);
    }
    ?>

  2. #2
    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
    Bonjour,

    ton service web fonctionne bien avec d'autres clients ? (ecrits dans d'autres langages)
    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

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Points : 103
    Points
    103
    Par défaut
    Bonjour,

    Merci pour ta réponse.

    Après avoir pas mal trifouillé pour pas grand chose je me suis rendu compte que le problème venait tout simplement de l'url de mon service web qui n'était pas correcte... le "ws" était en trop (no coment...)

    Par contre je me retrouve face à un autre problème.
    Le service est censé me renvoyer la chaine "Hello pedro". Cela fonctionne d'ailleurs parfaitement lorsque je consomme le service à partir d'un client C#.
    Par contre en php je me retrouve avec cette erreur :

    Catchable fatal error: Object of class stdClass could not be converted to string in E:\PROGRAM FILES\EasyPHP-5.3.6.0\www\index.php on line 12

    En regardant sur le net j'ai pu résoudre partiellement le problème en bouclant par un foreach sur la réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?php
    try
    {
     
       $client = new SoapClient('http://192.168.0.9/MyFirstWebService.asmx?wsdl');
       $response= $client->HelloWorld('pedro');
       foreach ($response as $item)
       {
               print ($item);
       }
     
    } catch (SoapFault $fault) {
                $error = 1;
                print($fault);
    }
    ?>
    Je précise que j'ai rajouté ce foreach un peu au pif sans comprendre pour le moment la réelle nécessité de celui-ci... Cela dit reste une partie du problème car au lieu de m'afficher "hello pedro" le code ci-dessus m'affiche seulement "hello"... alors que je recois bien "hello pedro" de mon client en C#...

    A vue de nez je pencherai pour un problème de type avec la chaine "pedro" envoyée depuis ma page php vers mon service web (pourtant mon code c# attends bien un string) mais comment résoudre le problème, pour le moment je sèche... Je vais peut être essayer avec un integer voir si j'ai le même type de problème.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 36
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    Je suis dans le même cas. Avez-vous trouver une solutions ?

  5. #5
    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
    Salut,

    stdClass est une classe standard, tu dois faire un var_dump sur l'objet pour ensuite appeler le membre concerné.
    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

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 36
    Points : 27
    Points
    27
    Par défaut
    Merci pour la réponse, je ne suis pas un grand spécialiste du PHP, mais serait-il possible de mettre à jour le code php ci-dessous avec les conseils préconisés ?

    Je sais, j'abuse un peu, mais je ne suis pas en mesure d'apprécier correctement la réponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?php
    try
    {
     
       $client = new SoapClient('http://192.168.0.9/MyFirstWebService.asmx?wsdl');
       $response= $client->HelloWorld('pedro');
       foreach ($response as $item)
       {
               print ($item);
       }
     
    } catch (SoapFault $fault) {
                $error = 1;
                print($fault);
    }
    ?>
    Merci d'avance

Discussions similaires

  1. consommer un service Web C # à partir de PHP
    Par ghost10 dans le forum Langage
    Réponses: 0
    Dernier message: 23/04/2010, 00h35
  2. [Web Service][nuSOAP] génération wsdl avec php et les types
    Par ybvj59930 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/02/2009, 17h03
  3. [Web Service] Débuter avec OpenID et PHP
    Par RideKick dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 01/12/2008, 20h03
  4. [Web Service] Gestion des Fault en PHP
    Par caballero dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 01/10/2008, 17h22
  5. [WCF] Appel d'un service windows WCF à partir de Php
    Par Interdit dans le forum Windows Communication Foundation
    Réponses: 10
    Dernier message: 21/04/2008, 11h18

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