2008-09-24 7 views
6

Je souhaite appeler un service Web, mais je ne connaîtrai pas l'URL avant l'exécution.Comment appeler un service Web sans référence Web?

Quel est le meilleur moyen d'obtenir la référence Web, sans réellement commettre d'URL.

Qu'en est-il du fait que 1 client tape le même service Web sur, disons, 10 domaines différents?

Répondre

8

Créez la référence Web et convertissez le service Web en service Web dynamique. Un service Web dynamique vous permet de modifier l'URL.

Vous devez créer la référence Web maintenant pour vous assurer que votre application comprend les interfaces disponibles. En basculant vers un service Web dynamique, vous pouvez ensuite modifier la propriété .Url après avoir initialisé la référence Web dans votre code.

service = new MyWebService.MyWebService(); 
service.Url = myWebServiceUrl; 
+0

pourquoi est-ce mieux que la génération des proxies avec wsdl.exe? – DevelopingChris

1

Vous pouvez modifier la propriété Url de la classe générée par l'assistant de référence Web.

Voici une question très similaire; How can I dynamically switch web service addresses in .NET without a recompile?

+0

réponses peuvent être similaires, mais ce n'est pas le comportement que je cherche vraiment. J'ai un service qui vit sur 10 domaines, et je veux l'interroger, sur chaque domaine, étant donné que chaque domaine a le même wsdl. – DevelopingChris

+0

Avec la dernière édition, ce n'est pas un dupe à 100% :) –

0

vous pouvez appeler votre service Web par une simple requête HTTP: Exemple:

http://serverName/appName/WSname.asmx/yourMethod? param1 = val1 & param2 = val2;

Si vous appelez via Http, la réponse http sera le résultat sérialisé. Mais si vous utilisez une référence Web, vous pouvez toujours modifier la propriété Url, by Url dans la classe proxy du service Web. URL sera stocké typiquement dans votre web.config

J'espère que je vous aider

+0

Les requêtes get ne sont pas autorisées sur asmx par défaut, donc les anciennes requêtes ne sont pas vraiment utiles. – DevelopingChris

+0

étrange, je le fais avec plein succès! –

Questions connexes