2010-06-19 4 views
0

J'ai un service Web Hello World C# ASP .NET généré automatiquement par le projet de service Web Visual Studio. Je veux l'appeler d'un client php. Puis-je savoir comment le faire? Mieux si quelqu'un peut fournir petit exemple de code .. Je n'ai pas beaucoup d'expérience en php et pas dans la compréhension approfondie des services Web afin de trouver difficile de le faire ..Comment appeler un service Web C# .NET à partir d'un client php?

Merci

Répondre

1

Puisque PHP est un langage dynamique, c'est plutôt simple. Tout ce dont vous avez besoin est une bibliothèque (SoapUI) et le WSDL. Si vous avez l'emplacement (URL) du service Web ajouter un? WSDL à la fin de l'URL et vous avez la définition. Alors c'est juste appeler le service à partir de là.

<?php 
require_once('libs/nusoap.php'); 
$wsdl="http://thedomain.com/theservice/endpoing.svc?wsdl"; 
$client=new soapclient($wsdl, 'wsdl'); 
$param=array('number1'=>'2', 'number2'=>'3'); 
echo $client->call('add', $param); 
?> 

Vous trouverez ici la bibliothèque: http://www.soapui.org/

+0

merci. J'ai l'url du service web et j'ai aussi installé soapui. Puis-je savoir ce que vous vouliez dire par require_once ('libs/nusoap.php')? Il ne peut pas trouver le chemin 'libs/nusoap.php' et donne l'erreur suivante. Échec de l'ouverture requise 'libs/nusoap.php' (include_path = '; C: \ php5 \ pear') dans C: \ wamp \ www \ hello.php à la ligne 6 – chathuradd

+0

Je l'ai eu. J'utilise nusoap comme bibliothèque de client de savon. J'ai essayé d'appeler la méthode HelloWorld du service Web en utilisant: require_once ('lib/nusoap.php'); \t \t $ wsdl = "http: // localhost: 64226/Service1.asmx? Wsdl"; \t \t $ client = nouveau soapclient ($ wsdl, 'wsdl'); \t \t \t \t echo $ client-> appel ('HelloWorld'); Mais il ne retourne pas la sortie "Hello World". Au lieu de cela, imprime le mot "Array". Une idée ? Je sais que cela doit être une question très simple que je pose :) – chathuradd

+0

Désolé, je suis habitué à PHP4, donc une solution encore meilleure pour vous si vous avez PHP5 est d'utiliser le SoapClient intégré. Exemple de code (testé) fonctionne comme suit: [Client PHP] SayHello (nouveau SayHello()); echo $ résultat-> SayHelloResult; ? > [service ASMX] [WebMethod] chaîne publique SayHello (String name) { return "Bonjour" nom +; } – Benny

1

En supposant qu'il est un service Web SOAP, vous devrait juste être en mesure d'utiliser le php SOAP library normal. Maintenant, la portabilité SOAP n'est pas tout à fait dans mon expérience, donc vous devrez peut-être jouer un peu (en particulier, tester des choses comme le fonctionnement des tableaux vides) mais cela devrait être un bon point de départ.

Les documents que j'ai liés sont plutôt bons, mais si vous recherchez "tutoriel php SOAP", vous obtiendrez beaucoup de résultats qui vous guideront étape par étape.

Une autre option est nusoap. Je ne peux pas dire quelle mise en œuvre est la meilleure.

+0

Merci. J'ai pensé utiliser nusoap – chathuradd

Questions connexes