您好我希望使用测试以下功能: http://msrmaps.com/terraservice2.asmx?op= ConvertLonLatPtToNearestPlace
有没有更快的方法可以使用 Visual Studio 2010 对其进行测试?我通常使用 C#。我只是想知道是否可以输入 wsdl,并让 Visual Studio 自动生成一些代码来调用该服务?谢谢。
顺便说一句,“测试表单仅适用于来自本地计算机的请求”是什么意思。在网址中?
您好我希望使用测试以下功能: http://msrmaps.com/terraservice2.asmx?op= ConvertLonLatPtToNearestPlace
有没有更快的方法可以使用 Visual Studio 2010 对其进行测试?我通常使用 C#。我只是想知道是否可以输入 wsdl,并让 Visual Studio 自动生成一些代码来调用该服务?谢谢。
顺便说一句,“测试表单仅适用于来自本地计算机的请求”是什么意思。在网址中?
您可以执行一些操作来生成该代码。第一种也是最简单的方法(在我看来)是创建对该 URL 的服务引用。以下是一些截图:
右键单击您的项目,添加服务引用:
输入 asmx 的 URL(在查询字符串中没有方法),为引用命名并单击 OK:
这将生成您拨打电话所需的代理代码:
从那里,您可以使用该代理代码来调用 Web 服务:
TerraService.TerraServiceSoapClient client = new TerraService
.TerraServiceSoapClient("TerraServiceSoap");
string place = client.ConvertLonLatPtToNearestPlace(
new TerraService.LonLatPt { Lat = 47.6532, Lon = -122.135479 });
第二种方法是使用WSDL.exe
Visual Studio自带的命令行工具。启动 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 服务很有用。