可以在Visual Studio中使用WSDL自动生成代码

您好,我希望使用测试以下function: http : //msrmaps.com/terraservice2.asmx?op = ConvertLonLatPtToNearestPlace

有没有更快的方法可以使用Visual Studio 2010进行测试? 我正常使用C#。 我只是想知道是否可以输入wsdl,并让visual studio自动生成一些代码来调用服务? 谢谢。

顺便说一句,这意味着什么“测试表只适用于本地机器的请求。” 在url?

您可以执行一些操作来生成该代码。 第一种也是最简单的方法(在我看来)是创建对该URL的服务引用。 以下是一些截图:

右键单击您的项目,添加服务引用:

右键单击项目,然后选择添加服务引用

输入asmx的URL(不包含查询字符串中的方法),为引用指定名称并单击“确定”:

输入服务的URL

这将生成进行调用所需的代理代码:

注意项目中的新服务引用

从那里,您可以使用该代理代码来调用Web服务:

TerraService.TerraServiceSoapClient client = new TerraService .TerraServiceSoapClient("TerraServiceSoap"); string place = client.ConvertLonLatPtToNearestPlace( new TerraService.LonLatPt { Lat = 47.6532, Lon = -122.135479 }); 

第二种方法是使用visual studio附带的命令行WSDL.exe工具。 启动visual studio命令提示符并键入wsdl /? 。 这将显示应用程序的参数。 就我而言,我只是从http://msrmaps.com/terraservice2.asmx?wsdl下载了一份WSDL,将其保存到我的桌面并运行命令:

 wsdl /o:./terraservice.cs terraservice.wsdl 

生成我的WSDL文件旁边的代理类。

最后一件事……正如@Habibillah建议的那样成为soapUI最好的朋友。 它是调用Web服务的绝佳工具,无需编写任何代码。

希望有所帮助!

Visual Studio可以为URL引用的wsdl / webservice生成代码,即使它在本地计算机外部也是如此。 但是,浏览器访问的测试表单可以在本地计算机(localhost)上访问。

但您仍然可以通过其他工具(如soapUI)在Internet上测试Web服务。 这个工具对我来说可以通过互联网测试web服务。