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. P>
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. P>
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. P>
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? P>
6 Réponses :
à 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: p>
WSDL / Langue: CS /Namespace:Your.namespace.here / OUT: Directory \ to \ Save \ to \ / protocole: Savon / ServerInterface enfin-your-wsdl-file-her.wsdl p> blockQuote>
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?
Vous pouvez également essayer l'interface utilisateur du savon pour la maquette de service avec facilité. (Outil de test de service Web gratuit) P>
vérifier: p>
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. P>
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. p>
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. P>
Vous pouvez également vouloir essayer un produit comme "Fiddler" ( http://www.fiddler2.com a >) p>
Il vous permet de capturer des paquets HTTP (ou HTTPS) et d'envoyer un faux fichier de réponse automatisé en arrière comme si le serveur avait envoyé la réponse. Je l'utilise pour mon projet et ça marche des merveilles lorsque le serveur de test est hors ligne (qui est souvent). Je prends un ancien paquet de réponse, enregistrez-le sous forme de fichier texte, puis renvoyez-la à nouveau et l'application que je consomme n'a aucune idée de son arrivée de l'hôte réel. P>
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: P>
obtenez WSDL en quelque sorte p> li>
dans l'invite de commande vs: p>
WSDL / LANGUE: CS / OUT: C: \ Téléchargements \ / protocole: SOAP / SERTERINTORFACE C: \ Téléchargements \ webservice.wsdl P> li>
Créez une nouvelle application Web ASP .NET avec un modèle vide P> li>
Ajouter le fichier, généré à l'étape 2, au projet P> li>
Ajouter un nouveau service au projet (Ajouter -> Nouvel élément -> Service Web (ASMX)) P> li>
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. P> li>
Hit Alt + Entrez et mettez l'interface automatiquement avec des talons. P> li>
HIT F5, le service s'exécutera et votre navigateur s'ouvrira, copier l'URL et l'utiliser au lieu de la vraie URL. P> li> ol>
Ce ne fonctionne que dans .NET Framework STRY> 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 P>