10
votes

Programmation contre le WSDL sans accès au service Web actuel

Je vais utiliser C # pour lire des données de quelques services Web. J'ai fait cela plusieurs fois auparavant, mais ces fois que j'ai eu un accès direct aux webservices de ma machine de développement.

Dans ce projet, je viens d'être envoyé un fichier .WSDL et quelques fichiers .xsd pour le WebService qu'ils ont dans leur intranet local.

J'ai vu que je peux utiliser "Ajouter une référence Web", et pointez directement au fichier .WSDL, de sorte qu'une classe C # est créée.

Mais comment puis-je vraiment le tester? J'aimerais retourner des données factices que je peux visualiser pendant que je développe. Des conseils pour cette situation?


0 commentaires

6 Réponses :


17
votes

Mock Webservice

à partir de la source ci-dessus, un fichier .CS peut être généré en ouvrant une invite de commande Visual Studio et en exécutant quelque chose comme ce qui suit:

WSDL / Langue: CS /Namespace:Your.namespace.here / OUT: Directory \ to \ Save \ to \ / protocole: Savon / ServerInterface enfin-your-wsdl-file-her.wsdl


3 commentaires

C'est parfaitement correct pour demander ici sans googler. Ce fil devrait être le premier coup quand quelqu'un google!


Aucune objection à cela. Ce n'était pas une critique, juste une information où est venu le lien.


Quel type de données d'échantillon ce service Web est-il de retourner?



2
votes

Vous pouvez également essayer l'interface utilisateur du savon pour la maquette de service avec facilité. (Outil de test de service Web gratuit)

vérifier:

http://www.soapui.org/gettingtingstarted/mocking.html


0 commentaires

0
votes

Il est facile de créer votre propre talon de serveur. En supposant que vous voulez le faire avec wcf, alors Allez ici . Vous pouvez ensuite ajouter une certaine logique de base pour que votre client fonctionne.

Vous pouvez également utiliser la fonctionnalité de service Web Legacy via le WSDL Tool's / Server Option , bien que je vous recommande d'utiliser wcf.


0 commentaires

1
votes

the SVCuttil.exe outil groupé avec le SDK Windows ( Trouvé à C: \ Program Files \ Microsoft SDKS \ Windows \ V6.0 \ Bin) est un outil de ligne de commande Nice qui génère des proxy clients WCF. J'ai trouvé que ceci soit un bon moyen d'interroger un WSDL. Cela créera une interface pour le service, puis une classe de proxy qui implémente cette interface. Vous pouvez ensuite vous maigrir quelque chose d'autre qui implémente cette interface pour faciliter les tests.


0 commentaires


0
votes

J'ai aussi trouvé cet article très utile: https://ivangrigoryev.com/fr/how-to-mock-a-web-service-in-dot-net/ Il décrit les étapes nécessaires, du téléchargement du fichier WSDL et de la création du projet de test:

  1. obtenez WSDL en quelque sorte

  2. dans l'invite de commande vs:

    WSDL / LANGUE: CS / OUT: C: \ Téléchargements \ / protocole: SOAP / SERTERINTORFACE C: \ Téléchargements \ webservice.wsdl

  3. Créez une nouvelle application Web ASP .NET avec un modèle vide

  4. Ajouter le fichier, généré à l'étape 2, au projet

  5. Ajouter un nouveau service au projet (Ajouter -> Nouvel élément -> Service Web (ASMX))

  6. Modifiez la définition de la classe dans le code de ce service Web ajouté. Il implémente la bonne interface, E.g Remplacer System.Web.Services.webservice avec le vôtre.

  7. Hit Alt + Entrez et mettez l'interface automatiquement avec des talons.

  8. HIT F5, le service s'exécutera et votre navigateur s'ouvrira, copier l'URL et l'utiliser au lieu de la vraie URL.

    Ce ne fonctionne que dans .NET Framework Etant donné que .NET CORE et .NET 5 ont laissé tomber le support du serveur WCF. Mais j'ai trouvé que cela est acceptable d'avoir le projet principal sur .NET 5, mais ce service simulé sur .NET FW 4.8


0 commentaires