如何在没有Web引用的情况下调用Web服务?

问题描述:

我想调用一个web服务,但直到运行时才会知道url。如何在没有Web引用的情况下调用Web服务?

请告诉我得到在Web引用,实际上并没有提交到网址的最佳途径。

大约有1个客户打到什么说上10个不同域相同的Web服务?

创建Web参考,并转换成Web服务,以动态的Web服务。动态Web服务允许您修改Url。

现在,您需要创建Web引用,以确保您的应用程序了解可用的接口。通过切换到动态Web服务,您可以在代码中初始化Web引用后修改.Url属性。

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

这是为什么不是生成与Wsdl.exe用的代理好? – DevelopingChris 2008-09-24 06:14:15

您可以更改由Web引用向导生成的类的Url属性。

这是一个非常类似的问题; How can I dynamically switch web service addresses in .NET without a recompile?

+0

答案可能类似,但它不是我真正想要的行为。 我有一个生活在10个域上的服务,我想在每个域上进行轮询,因为每个域都具有相同的wsdl。 – DevelopingChris 2008-09-24 06:15:18

+0

使用最新的编辑它不是100%的欺骗:) – 2008-09-24 06:26:18

,你可以通过一个简单的HTTP请求调用Web服务: 例子:

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

如果您通过HTTP,HTTP呼叫响应将被序列化的结果。

但是如果你使用的Web引用,你总是可以在Web服务代理类变更网址,通过网址属性。网址tipically将被储存在你的web.config

我希望我帮你