Page 1 sur 2

soap et les webservices

Posté : 02 avr. 2012, 16:35
par Megadeth
Bonjour,

Je voulais savoir les pré-requis pour utiliser les webservices via php. Que faut-il exactement car je bloque ?

Sur mon serveur la librairie soap est installée, je peux la voir via un phpinfo(), ouverture ports 80.

Derrière ce code devrait fonctionner, non ?
<?php
$client = new SoapClient ("http://xxx/SessionServices.asmx?wsdl");
$param = array('Login' => array('database'=>la database, 'user'=>le user, 'password'=>le password));
$result = $client->__soapCall ('Login', $param);
?>
Un autre appel à faire ?

En vous remerçiant,

Mega
;)

Re: soap et les webservices

Posté : 02 avr. 2012, 22:11
par moogli
salut,

ça dépend de ton webservice :)

pour aider un peu à la lisibilité tu peux faire
<?php
$client = new SoapClient ("http://xxx/SessionServices.asmx?wsdl");
$param = array('Login' => array('database'=>la database, 'user'=>le user, 'password'=>le password));
$result = $client->Login($param);
?>
Perso j'ai testé y a pas longtemps avec un web service en java et j'ai dû ajouter les annotations pour nommer le service et les méthodes.

@+

Re: soap et les webservices

Posté : 03 avr. 2012, 10:31
par Megadeth
Bonjour, ok Moogli.

Ce que je veux dire aussi c'est qu'il n'y a pas besoin de faire un include particulier relatif à soap et que l'extension/librairie installé sur apache suffit à elle-même ?

Merci à toi

Mega
;)

Re: soap et les webservices

Posté : 03 avr. 2012, 12:56
par xTG
Non c'est une librairie PHP, donc il suffit juste qu'elle soit activée :
http://fr.php.net/manual/en/soap.installation.php

On ne fait pas d'include pour utiliser des fonctions ou des objets relatifs au package de PHP.

Re: soap et les webservices

Posté : 03 avr. 2012, 17:46
par moogli
package de PHP.
Vade retro satanassssssssssssss

Package Pff qu'est ce qui faut pas entendre ;)


@+

Re: soap et les webservices

Posté : 04 avr. 2012, 07:20
par xTG
Paquetage ? Sac à dos ? Trousse de secours ?
Tu préfères quel terme pour indiquer que c'est un récipient. :)

Re: soap et les webservices

Posté : 04 avr. 2012, 17:38
par moogli
En php la seule chose qui y ressemble c'est le namespace ;)

Package ça me fait penser à java et ça le file des boutons ;)

J'aurais pas d'include pour les fonctions native php, ou pour les fonctions intégrées à php (sous forme d'extension).

Bref java c'est le mal et de toute façon php c'est le plus fort n'a ;)

@+

Re: soap et les webservices

Posté : 04 avr. 2012, 19:54
par xTG
Tu tentes de convertir un déjà converti c'est malin. =/

Re: soap et les webservices

Posté : 05 avr. 2012, 08:49
par moogli
:twisted: :mrgreen:

Re: soap et les webservices

Posté : 05 avr. 2012, 10:33
par Megadeth
HELL'O,

J'ai essayé ceci sur mon serveur web, en vain, c'est à s'arracher les cheveux !!!
<?php
try
{

$client = new SoapClient ("http://xxx/SessionServices.asmx?wsdl");
$param = array('Login' => array('database'=>database avec ou sans guillemets, 'user'=>user avec ou sans guillemets, 'password'=> même chose));
$result = $client->Login($param);
}
catch(Exception $e)
{
  echo "Exception: " . $e;
}
?>
Ca mouline et au final j'ai une erreur DNS ou sous firebug une jolie erreur
"NetworkError: 500 Internal Server Error - http://www.monsite.com/soapy.php"

Ça me saoule !!! Quelqu'un aurait une idée ?

Mega
;)

Re: soap et les webservices

Posté : 05 avr. 2012, 11:34
par moogli
quand tu met http://xxx/SessionServices.asmx?wsdl dans ton navigateur t'a bien le wsdl ?

parce que bon la y a pas trop de soucis.
vérifie les noms que tu passe en index du tableau (peux être un soucis de nommage comme expliqué plus haut).

c'est toi qui le créer le wsdl ?

t'a essayé un wsdl a partir d'un code qui fonctionne ?

@+

j'en profite pour te dire qu'afficher ainsi une exception c'est moyen hein :)
<?php
try
{

$client = new SoapClient ("http://xxx/SessionServices.asmx?wsdl");
$param = array('Login' => array('database'=>'database avec ou sans guillemets', 'user'=>'user avec ou sans guillemets', 'password'=>' même chose'));
$result = $client->Login($param);
}
catch(Exception $e)
{
  echo "Exception: " . $e.getMessage();
// ou
e.getPrintStacktrace();
}
>

Re: soap et les webservices

Posté : 05 avr. 2012, 12:18
par Megadeth
Merci Moogli pour ton aide.

Oui j'arrive bien à afficher les différents services quand je saisis dans l'url : http://monappli/xxx.asmx et un xml quand je rajoute ?wsdl

Pour les paramètres je suis sur de moi et j'ai déjà utilisé ce code sur une autre plateforme vers ces mêmes services mais là ça coince.

Je n'ai pas créé personnellement le wsdl et là j'ai une exception SOAP :

Code : Tout sélectionner

Exception: SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://appli/xxx.asmx?wsdl' : failed to load external entity "http://appli/xxx.asmx?wsdl" in /serveur qui appelle/soapy.php:5 Stack trace: #0 /serveur qui appelle/soapy.php(5): SoapClient->SoapClient('http://appli') #1 {main}
Ca te parle ?

Mega
;)

Re: soap et les webservices

Posté : 06 avr. 2012, 11:30
par moogli
heu non :)

par contre pour ce qui est de l'utilisation du web service, j'avais aussi un code nikel en java qui attaqué le code java sans aucun problème.
pourquoi ? ben parce que java, avec les outils de compète, utilise des interfaces avec la description des champs. Et je ne sais pas pourquoi, mais avec php les annotations permettent d'être certain du nom de la méthode ^^

c'est un peu le brin les web service :s

@+

Re: soap et les webservices

Posté : 16 avr. 2012, 12:19
par Megadeth
Bonjour,

Personne n'a jamais rencontré ce souci ?

Exception: SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://appli/xxx.asmx?wsdl' : failed to load external entity "http://appli/xxx.asmx?wsdl" in /serveur qui appelle/soapy.php:5 Stack trace: #0 /serveur qui appelle/soapy.php(5): SoapClient->SoapClient('http://appli') #1 {main}

Je sèche car je ne sais pas si ca vient de moi ou de la config

Merci de votre aide.

Mega
;)

Re: soap et les webservices

Posté : 14 nov. 2012, 13:25
par sam
J'ai le meme soucis, tu as trouvé une solution µ?