[PHP] création du service web avec nuSoap

création du service web avec nuSoap [PHP] - PHP - Programmation

Marsh Posté le 31-01-2005 à 11:49:09    

voilà j'essaye de mettre en place un service web via php coté serveur.
j'ai surfé donc sur le net et j'ai trouvé ça :
 
côté serveur :

Code :
  1. <?php
  2. require_once('lib/nusoap.php');
  3. $server = new soap_server();
  4. $server->debug_flag=false;
  5. $server->register('bonjour');
  6. function bonjour($prenom) {
  7. return "Bonjour $prenom";
  8. }
  9. $server->service($GLOBALS["HTTP_RAW_POST_DATA"]);
  10. ?>


 
côté client :

Code :
  1. <?php
  2. require_once('lib/nusoap.php');
  3. $client = new soapclient('http://localhost:8080/WebServiceTest/server.php');
  4. $err = $client->getError();
  5. ?>
  6. <html>
  7. <head>
  8. <title>test</title>
  9. </head>
  10. <body>
  11. <?php
  12. if ($err) {
  13. echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
  14. } else {
  15. print '<h2>Test de bonjour</h2>';
  16. $param = array('prenom'=>'Sylvain');
  17. print $client->call('bonjour', $param);
  18. }
  19. ?>
  20. </body>
  21. </html>


 
en fait malheureusement cela ne fonctionne pas.. je n'ai rien qui s'affiche à hauteur de mon "print $client->call('bonjour', $param)"
 
j'utilise nusoap sur php 4/5 .. ça donne le même résultat :(
 
kk'un aurait un exemple d'un petit service web fonctionnant?!
 
un grand merci.

Reply

Marsh Posté le 31-01-2005 à 11:49:09   

Reply

Marsh Posté le 31-01-2005 à 12:55:07    

Je t'aurais bien aidé, mais je n'ai malheureusement pas compris un seul mot de ce que tu racontes :(
 
Désolé

Reply

Marsh Posté le 31-01-2005 à 13:04:30    

au moins tu as lu :)

Reply

Marsh Posté le 31-01-2005 à 14:05:04    

elle sert à quoi ta librairie nusoap.php ? et peux tu montrer le code des fonctions que tu appelle, comme soapclient ?
 
celà dis ça fait quand meme orienté objet vu ta syntaxe, et je suis vraiment pas à mon aise avec les class et objet (j'ai jamais pris le temps d'apprendre)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 31-01-2005 à 14:17:19    

nusoap --> http://sourceforge.net/projects/nusoap
 
c'est une librairie pour faire du soap avec php.
j'ai rien inventé j'implémente juste un exemple mais ca ne fonctionne pas chez moi :(

Reply

Marsh Posté le 31-01-2005 à 14:18:58    

Xav_ a écrit :

elle sert à quoi ta librairie nusoap.php ? et peux tu montrer le code des fonctions que tu appelle, comme soapclient ?
 
celà dis ça fait quand meme orienté objet vu ta syntaxe, et je suis vraiment pas à mon aise avec les class et objet (j'ai jamais pris le temps d'apprendre)


 
http://www.nexen.net/docs/php/annotee/soap.intro.php
 

Citation :


Attention
 
Ce module est EXPERIMENTAL . Cela signifie que le comportement de ces fonctions, leurs noms et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez ce module à vos risques et périls.


 
Ceci explique peut-être le problème?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 31-01-2005 à 14:21:42    

Tout à fait Skeye, je venais juste de le lire et revenait posté le lien de la doc:
http://php.planetmirror.com/manual/fr/ref.soap.php
 
t'a bien respecté tout les pré-requis la viper ?


Message édité par Xav_ le 31-01-2005 à 14:21:57

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 31-01-2005 à 14:22:34    

essaye d'afficher les var de debug pour avoir plus d'info
exemple :

Code :
  1. echo '<h2>Request</h2><pre>'.htmlspecialchars($client->request,ENT_QUOTES).'</pre>';
  2. echo '<h2>Response</h2><pre>'.htmlspecialchars($client->response,ENT_QUOTES).'</pre>';
  3. echo '<h2>Debug</h2><pre>'.htmlspecialchars($client->debug_str,ENT_QUOTES).'</pre>';


Reply

Marsh Posté le 31-01-2005 à 14:23:32    

D'ailleurs on peut y lire ceci :
 

Citation :

Pré-requis
 
Cette extension nécessite la bibliothèque GNOME xml . Téléchargez et installez cette bibliothèque. Vous devez avoir au moins la version libxml-2.5.4


 
Bon ça c'est peut etre pour Linux only...
 
Sinon il y a ça aussi :
 

Citation :

Cette extension est uniquement disponible si PHP a été configuré avec --enable-soap


 
Voilà ... j'aide comme je peux :D
 
++

Reply

Marsh Posté le 31-01-2005 à 14:23:51    

skeye a écrit :

http://www.nexen.net/docs/php/annotee/soap.intro.php
 

Citation :


Attention
 
Ce module est EXPERIMENTAL . Cela signifie que le comportement de ces fonctions, leurs noms et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez ce module à vos risques et périls.


 
Ceci explique peut-être le problème?


 
Généralement c'est marqué juste pour qu'on ne dise pas derriere "c'est de la merde ca marche pas", mais perso j'ai jamais eu de problème avec tous les trucs marqués expérimentaux, souvent c'est de la qualité mais pas encore complètement à jour ;)

Reply

Marsh Posté le 31-01-2005 à 14:23:51   

Reply

Marsh Posté le 31-01-2005 à 14:25:49    

ouais soap activé sur mon php 5.. j'vais tenté la manip sur mon php4 .. :(
 
j'teste les variables de débug merci :)

Reply

Marsh Posté le 31-01-2005 à 14:27:26    

Dj YeLL a écrit :

Citation :

Cette extension est uniquement disponible si PHP a été configuré avec --enable-soap

++


avec nusoap pas besoin vu qu'il s'agit d'une lib php.

Reply

Marsh Posté le 31-01-2005 à 14:30:07    

j'ai testé, ça fonctionne chez moi, ça affiche :

Citation :

Test de bonjour
Bonjour Sylvain


Reply

Marsh Posté le 31-01-2005 à 14:36:00    

je peux me flageler .. :) .. la redirection par le port pose apparement soucis (le 8080)

Reply

Marsh Posté le 31-01-2005 à 14:36:14    

la viper a écrit :

je peux me flageler .. :) .. la redirection par le port pose apparement soucis (le 8080)


[:ddr555]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 31-01-2005 à 14:37:20    

Par contre le principe m'intéresse...un apache/php sur les 2 machines, une machine sert de frontend et l'autre serveur d'applis, c'est bien ça?


Message édité par skeye le 31-01-2005 à 14:37:28

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 31-01-2005 à 14:42:29    

c'est encore mieux .. un serveur en php .. et un client en n'importe quoi du moment qu'il supporte le protocole SOAP (perl/python/java/c++/C#..) ca fait tomber les barrieres et t'es pas obligé de réinventer la roue si tu veux fournir des services (la météo, l'heure des trains, les mensurations de ma belle mère.. etc)  
:)

Reply

Marsh Posté le 31-01-2005 à 14:43:24    

la viper a écrit :

c'est encore mieux .. un serveur en php .. et un client en n'importe quoi du moment qu'il supporte le protocole SOAP (perl/python/java/c++/C#..) ca fait tomber les barrieres et t'es pas obligé de réinventer la roue si tu veux fournir des services (la météo, l'heure des trains, les mensurations de ma belle mère.. etc)  
:)


:jap:
Va falloir que je me penche là-dessus...[:dawa]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 31-01-2005 à 14:51:44    

Très pratique aussi avec le web service de google, cela permet par exemple d'intégrer complètement google à son site et d'utiliser des fonctions 'googlesques' tel que proposer un mot lorsque le visiteur fait une erreur de frappe.
http://www.google.com/apis/

Reply

Marsh Posté le 08-11-2005 à 16:31:39    

Bonjour,
 
Je cherche comment je pourrais modifier ce Webservice de façon a ce que le prénom ne soit plus Sylvain par default mais un prénom qui serait entrer par l'utilisateur dans un champ (input type=texte) et valider par un bouton (input typ=submit).
 
Voilà en quelque sorte je veut pouvoir entrer un prénom puis lancer le webservice (avec ce prénom) en cliquant sur un bouton.
 
Merci d'avance pour votre aide !

Reply

Marsh Posté le 26-11-2005 à 19:20:27    

utilise un formulaire qui va te permettre de saisir le prénom. Regarde ca de plus près, t'aura juste une variable récupérer par @_POST

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed