2010-12-22 4 views
6

Je suis nouveau dans le monde .NET, mais je dois utiliser VStudio C# 2010 (.NET 4.0) pour produire un client qui demande des données à partir d'un service Web en mode SOAP Xml. J'ai cherché ici des réponses mais j'ai été encore plus confus. MSDN indique que "Création de clients de service Web XML" est hérité pour .NET 4.0, c'est-à-dire que WSDL est hérité. Utilisez "WCF" à la place, disent-ils. En WCF, je me suis perdu - trop et trop vague. Il doit être plus simple que cela ... Et tous les exemples que j'ai pu trouver sur le web - ils utilisent tous WSDL, "l'héritage".SOAP client xml - en utilisant Visual Studio 2010 C# - comment?

Voici les définitions du service que je dois utiliser pour obtenir les données du service Web:

demande:

POST /catalog.asmx HTTP/1.1 
Host: www.somewebsite.com 
Content-Type: text/xml; charset=utf-8 
Content-Length: length 
SOAPAction: "https://www.somewebsite.com/KeywordSearch" 

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <KeywordSearch xmlns="https://www.somewebsite.com/"> 
    <searchTerm>string</searchTerm> 
    <resultsReturned>int</resultsReturned> 
    </KeywordSearch> 
    </soap:Body> 
</soap:Envelope> 

Réponse:

HTTP/1.1 200 OK 
Content-Type: text/xml; charset=utf-8 
Content-Length: length 

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    ...some stuff... 
    </soap:Body> 
</soap:Envelope> 

Ainsi, quel est le bon, ou au moins la façon la plus logique de construire ce client simple? Quels outils/bibliothèques/méthodologies suggérez-vous aux débutants (en supposant VS 2010 C#, environnement .NET 4.0)?

+1

Pour votre information, ce qui est « héritage » est la création de services Web ASMX et en utilisant "Ajouter une référence Web". Comme le suggère marc_s, vous devriez utiliser "Add Service Reference", qui devrait fonctionner correctement. –

Répondre

5

Si vous avez un WSDL/XSD pour décrire ce service, ou si vous pouvez accéder à une URL pour saisir ces métadonnées, alors WCF avec basicHttpBinding serait probablement votre meilleur pari. WSDL est définitivement et non "legacy" - si quelque chose est hérité, alors ce sont les services Web ASP.NET/ASMX. Étant donné un WSDL/XSD ou une URL à laquelle vous pouvez vous connecter, faites simplement un Add Service Reference depuis Visual Studio, et vous devriez être opérationnel pour appeler votre service WCF en un rien de temps - croyez-moi! Vous n'avez pas besoin de connaître tout de WCF juste pour appeler un simple service web SOAP .... aussi, avec WCF 4.0, beaucoup de choses - en particulier la configuration - ont été grandement améliorées et simplifiées.

En ce qui concerne les ressources: il y a le MSDN WCF Developer Center qui a tout des tutoriels de débutant aux articles et à l'exemple de code.

également, consultez le screen cast library up on MSDN pour certains vraiment utiles, des morceaux de 10-15 minute d'information sur à peu près tous les sujets liés à WCF vous pourriez être intéressé par.

+0

Il semble assez simple. Merci! je vais essayer. – rita

+0

fonctionne très bien! Merci! – rita

+0

@rita: Voir! La WCF n'est pas un gros monstre effrayant après tout ;-) Apprenez-la petit à petit, autant que vous en avez besoin en ce moment - et tout commence à avoir du sens :-) –

Questions connexes