web-dev-qa-db-fra.com

Comment utiliser un WSDL

J'ai besoin de consommer un service Web. Ils m'ont envoyé le fichier WSDL. Que dois-je faire pour l'ajouter à mon site Web et commencer à l'utiliser comme proxy? (Si je le mets sur un répertoire virtuel, il peut être découvert, mais me permet-il de me connecter au vrai service Web?)

113
jmayor

Je lancer Visual Studio, créer un projet Web (ou une application console - peu importe).

Pour .Net Standard:

  1. Je voudrais faire un clic droit sur le projet et choisir "Ajouter une référence de service" dans le menu contextuel Ajouter .
  2. Je voudrais cliquer sur Avancé, puis sur Ajouter une référence de service.
  3. Je voudrais obtenir le chemin complet du fichier WSDL et coller dans la barre d'adresse. Puis tirez la flèche (bouton Go).
  4. S'il y a une erreur en essayant de charger le fichier, il doit y avoir une URL cassée et non résolue que le fichier doit résoudre comme indiqué ci-dessous: enter image description here Reportez-vous à cette réponse pour savoir comment résoudre ce problème: Réponse de Stackoverflow à: Impossible de créer une référence de service pour le fichier wsdl

S'il n'y a pas d'erreur, vous devez simplement définir le NameSpace que vous souhaitez utiliser pour accéder au service et celui-ci sera généré pour vous.

Pour .Net Core

  1. Je voudrais faire un clic droit sur le projet et choisissez Service connecté dans le menu contextuel Ajouter.
  2. Je sélectionnerais le fournisseur de référence du service Web Microsoft WCF dans la liste.
  3. Je voudrais appuyer sur Parcourir et sélectionnez le fichier WSDL tout de suite, Définir le namespace et je suis bon pour aller. Reportez-vous à l'URL de correction d'erreur ci-dessus si vous rencontrez une erreur.

Chacune des méthodes ci-dessus générera un client WCF simple et très basique que vous pourrez utiliser. Vous devriez trouver une classe "YourservicenameClient" dans le code généré.

À des fins de référence, le fichier cs généré peut être trouvé dans votre Obj/debug (ou version)/XsdGeneratedCode et vous pouvez toujours trouver les DLL dans le dossier TempPE.

Les services créés doivent avoir des méthodes pour chacune des méthodes définies dans le contrat WSDL.

Instanciez le client et appelez les méthodes que vous souhaitez appeler, c'est tout!

YourServiceClient client = new YourServiceClient();
client.SayHello("World!");

Si vous devez spécifier l'URL distante (sans utiliser celle créée par défaut), vous pouvez facilement le faire dans le constructeur du client proxy:

YourServiceClient client = new YourServiceClient("configName", "remoteURL");

configName est le nom du noeud final à utiliser (vous utiliserez tous les paramètres sauf l'URL), et le remoteURL est une chaîne représentant l'URL de connexion (au lieu de celle contenue). dans la config).

126
marc_s

En studio visuel.

  • Créez ou ouvrez un projet.
  • Cliquez avec le bouton droit sur le projet dans l'explorateur de solutions.
  • Sélectionnez "Ajouter une référence de service"
  • Collez l'adresse avec WSDL que vous avez reçue.
  • Cliquez sur OK.

En l'absence d'erreur, vous devriez pouvoir voir la référence de service dans le navigateur d'objets et toutes les méthodes associées.

43
vidalsasoon

Utilisez tilitaire WSDL.EXE pour générer un proxy de service Web à partir de WSDL.

Vous obtiendrez un long fichier source C # contenant une classe ressemblant à ceci:

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")]
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol {
    ...
}

Dans votre code consommateur de service Web côté client:

  1. instancier MyService.
  2. définir sa propriété Url
  3. invoquer des méthodes Web
16
azheglov

Si vous voulez ajouter une référence à wsdl dans le projet . Net Core , il n'existe pas d'option "Ajouter une référence Web".

Pour ajouter la référence wsdl, accédez à Explorateur de solutions, cliquez avec le bouton droit de la souris sur l'élément de projet Références, puis cliquez sur l'option Ajouter un service connecté .

enter image description here

Cliquez ensuite sur 'Référence du service Web Microsoft WCF':

enter image description here

Entrez le chemin du fichier dans la zone de texte URI et importez le WSDL:

enter image description here

Il générera un client WCF simple et très basique et vous pourrez l'utiliser de la manière suivante:

YourServiceClient client = new YourServiceClient();
client.DoSomething();
4
Nedzad G