Précédent   Forum du club des développeurs et IT Pro > PHP > Bibliothèques et frameworks > Services Web
Services Web Forum d'entraide pour les services Web en PHP, qui permettent de créer et de consommer facilement des webservices (génération de WSDL etc.). Exemples : SOAP, NuSOAP, REST, SCA-SDO... Avant de poster -> Cours webservices
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/06/2011, 22h14   #1
koktel_dfr
Membre du Club
 
Inscription : mars 2007
Messages : 182
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : mars 2007
Messages : 182
Points : 59
Points : 59
Par défaut 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 :
Citation:
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 :
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);
}
?>
koktel_dfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 16h48   #2
Thes32
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur PHP, .Net, T-SQL
Inscription : décembre 2006
Messages : 2 354
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 354
Points : 4 628
Points : 4 628
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
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 00h27   #3
koktel_dfr
Membre du Club
 
Inscription : mars 2007
Messages : 182
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : mars 2007
Messages : 182
Points : 59
Points : 59
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 :
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.
koktel_dfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2012, 10h34   #4
Runan
Candidat au titre de Membre du Club
 
Homme
Inscription : juin 2004
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2004
Messages : 36
Points : 12
Points : 12
Bonjour,

Je suis dans le même cas. Avez-vous trouver une solutions ?
Runan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2012, 12h40   #5
Thes32
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur PHP, .Net, T-SQL
Inscription : décembre 2006
Messages : 2 354
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 354
Points : 4 628
Points : 4 628
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
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2012, 14h10   #6
Runan
Candidat au titre de Membre du Club
 
Homme
Inscription : juin 2004
Messages : 36
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2004
Messages : 36
Points : 12
Points : 12
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 :
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
Runan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h44.


 
 
 
 
Partenaires

Hébergement Web