Client SOAP en C # sans accès à un fichier WSDL
Je suis en train de travailler avec un tiers d'intégrer certains de nos systèmes avec eux, et ils nous fournissent une interface SOAP à faire certaines demandes et des changements dans leurs systèmes connectés. Le problème pour moi est qu'ils ne fournissent pas un WSDL-fichier pour moi de travailler contre. Si j'avais un WSDL-fichier il suffirait simplement d'exécuter le fourni .Commande NET (wsdl.exe) et de générer une classe proxy pour interagir avec le service.
Est-il "facile" de le faire sans une WSDL-fichier? J'ai toutes les fonctions que nous avons accès et les paramètres que j'ai besoin d'envoyer et de ce que je devrais attendre en retour.
Est-il possible d'avoir un SAVON sans WSDL-files? (Je vous pose cette question puisque nous allons ajouter plus de systèmes externes dans le mélange à l'avenir)
Quelqu'un a fait un proxy de la classe ou de toute autre forme de clients à l'encontre d'un WSDL-moins de services et avez des bons conseils sur la façon de le faire?
source d'informationauteur Kristoffer L
Vous devez vous connecter pour publier un commentaire.
Si vous écrivez une classe qui dérive de
System.Web.Services.Protocols.SoapHttpClientProtocol
(et a les attributs corrects, par exemple,WebServiceBinding
SoapDocumentMethod
etc. appliqué et ses méthodes), vous pouvez assez facilement appeler des méthodes SOAP sans avoir besoin du fichier WSDL.La meilleure façon de le faire serait probablement pour écrire votre propre ASP.NET service web qui réplique la troisième partie de l'API SOAP, de générer une classe proxy, puis modifier manuellement le fichier pour s'assurer que l'URL, les espaces de noms, les noms de méthodes, les types des paramètres, etc. sont corrects pour la troisième partie de l'API que vous souhaitez appeler.
Je n'ai pas construit une interface SOAP sans accès à un fichier WSDL, mais le format est assez bien documenté. Votre meilleur pari serait de créer une procédure simplifiée fichier WSDL de votre propre qui reflète ce que vous savez sur le service que vous êtes en vous abonnant à....
Si vous décidez d'aller dans cette voie, un existant stackoverflow question points à certains outils pour la validation de votre WSDL.
le code ici est en VB.NET mais je pense que vous aurez l'idée. Ce qui suit est un client qui appelle le 'processConfirmation" méthode " et il attend une réponse (MyBase.SendRequestResponse).
Et vous l'utilisez en procédant de la manière suivante:
Je pense que cela devrait fonctionner .... succès!