Article complet: WebService PHP consommé par une application C#

18/03/2009

Permalink 21:57:48, Catégories: C#, Articles, Divers, WebService, PHP, 608 mots   French (FR) , laedit

WebService PHP consommé par une application C#

Pour créer un WebService facilement en PHP, il faut travailler en PHP5 avec l’extension SOAP d’activée. Pour cela, le mieux est de travailler en local avec Wamp Server (Wamp 5), qui permet d’activer cette extension.

[Suite:]

Une fois le matériel prêt, on va commencer par ouvrir notre éditeur de PHP préféré et d’écrire la classe qui être utilisé par le WebService.
Dans notre exemple, on va juste définir une petite classe chargée de faire une opération et une soustraction :

class Math 

 
  public function Add($a, $b) 
  { 
    return $a + $b; 
  } 
  
  public function Substract($a, $b) 
  { 
    return $a - $b; 
  } 
 

Voilà donc les méthodes qui seront exposées part le WebService.
Il ne reste plus qu’à créer le serveur et la partie PHP sera terminée.
Pour cela, nous allons utiliser la classe SoapServer :

require 'Math.class.php'; 
 
// première étape : désactiver le cache wsdl lors de la phase de test 
ini_set("soap.wsdl_cache_enabled", "0"); 
 
$wsdl  = 'WebService.wsdl'; 
//Création du serveur SOAP avec le fichier WSDL 
$server = new SoapServer($wsdl); 
//Ajout de la classe Math dans les éléments proposés par le WebService 
$server->setClass('Math'); 
 
//l'utilisation du WebService se fera toujours par la méthode POST 
if ($_SERVER["REQUEST_METHOD"] == "POST")  

  $server->handle(); 

else //dans le cas contraire, la page affichera les méthodes proposées par le WebService 

  echo '<h4>Ce serveur SOAP peut gérer les fonctions suivantes : </h4><ul>'; 
  $functions = $server->getFunctions(); 
  foreach($functions as $func) 
    echo '<li>'.$func.'</li>'; 
  
  echo '</ul>'; 
}

Vous avez sûrement remarqué qu’on fait appel au fichier WebService.wsdl alors qu’on ne l’a pas encore créé. On va donc s’en charger maintenant. Le mieux pour cela est d’utiliser un logiciel qui va générer le fichier wsdl finale grâce à des informations qu’on lui aura apporté. Pour ma part j’utilise Altova XML Spy qui est disponible gratuitement en version d’essai.
Voilà donc ce que ça donne en version graphique :

Résultat graphique du fichier WSDL

La partie serveur est à présent terminée, attaquons nous au client .net en C#.

L’utilisation de Visual Studio 2008 est conseillé, il permet la génération automatique d’un proxy grâce a WCF à partir du fichier WSDL.
On va commencer par créer une application console. Ensuite, il suffit d’ajouter une un Service Reference en passant en adresse celle du fichier WSDL (http://localhost/WebServices/WebService.wsdl dans notre cas) et Math comme namespace pour la référence.

WCF a alors généré la classe MathServiceClient ainsi qu’un fichier de configuration qui vont nous servir à intéragir avec le WebService.
On va instancier cette classe :

MathServiceClient math = new MathServiceClient();

Puis on va simplement appeler nos deux méthodes :

Console.WriteLine(math.Add(5, 5)); 
Console.WriteLine(math.Substract(10, 5));

Et bien sûr, il ne faut pas oublier de fermer le client :

math.Close();

Et voilà, notre client .net consomme notre WebService PHP !

Les sources de cet article sont disponibles ici.

Social Bookmarking:

                                     

Commentaires, Pingbacks:

Connectez-vous pour vous abonner à cet article:

Flux de commentaires pour cet article : Atom 1.0  RSS 2.0
Commentaire de: doukhi [Membre]
comment sécuriser le web service ,svp ?
Permalien 12/01/2010 @ 15:01
Commentaire de: laedit [Membre]
Il suffit d'aller voir dans le forum PHP ;)
Permalien 12/01/2010 @ 15:25

Vous devez être identifié pour poster un commentaire.

Liste des blogs

Blog de Jérémie Bertrand

Etudiant / Formateur .NET


BlogRoll
Clément Nedelcu
Julien Corioland
Reflectiv

Catégories


Rechercher

<  Mai 2012  >
Lun Mar Mer Jeu Ven Sam Dim
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Syndiquez ce blog XML

Articles :

Commentaires :

 
 
 
 
Partenaires

Hébergement Web