14.5 消费Web服务
在ASP.NET应用程序中调用WebService服务,方法如下。
新建一个ASP.NET应用程序并完成界面设计。
创建Web服务的引用。
设计代码 ,调用Web方法。
测试ASP.NET应用程序的WebService调用。
【例14-2】下面创建一个Web应用程序来调用前面创建的Web服务。
操作步骤如下。
(1) 新建一个ASP.NET应用程序并完成界面设计。
新建一个ASP.NET网站Ex14_2,切换到设计窗口,在Web窗体上添加两个Label、两个TextBox和一个Button控件,设置Label和Button控件相应的Text属性。利用按钮的单击事件处理程序,调用该Web服务。界面设计如图14-8所示。
|
(点击查看大图)图14-8 Web应用程序的界面设计 |
(2) 添加对Web服务的引用。
要添加一个服务引用,选择【网站】|【添加Web引用…】菜单项,之后弹出【添加Web引用】对话框,如图14-9所示。该对话框允许你浏览Web服务,并查看WSDL说明。
在该对话框顶部的地址文本框中输入WebServiceSample Web服务的URL:
- http://localhost:22731/WebServiceSample/Service.asmx
单击【前往】按钮。
|
(点击查看大图)图14-9 【添加Web引用】对话框 |
如果Web服务是由本地计算机上的IIS提供的,那就可以单击对话框左侧窗格中的【本地计算机上的Web服务】链接,而不必手工输入地址。在这个例子中,Web服务是由ASP.NET Development Server提供的,所以单击该超链接时,Web服务是不会显示的。另外,Web服务必须处在运行中。
随后,将显示一个Web服务测试页,其中列出了HelloWorld方法,将【Web引用名】文本框中的内容更改为WebServiceSample。如图14-10所示。
单击【添加引用】按钮。之后,返回【解决方案资源管理器】,会发现其中添加了一个新的文件夹App_WebRefrences。该文件夹中包含一个WebServiceSample项,如图14-11所示。
|
图14-10 【添加Web引用】对话框的设置 |
|
图14-11 【网站】|【添加Web引用…】添加的内容 |
(3) 设计代码,调用Web方法。
添加了Web引用后,就生成了一个客户代理类。
右击Default,在弹出的菜单中选择【查看代码】命令,在打开的【代码和文本编辑器】窗口中显示Default程序。在此文件顶部的列表中添加下面的using指令:
- using WebServiceSample;
向一个项目添加Web引用时,该Web服务生成的代理类将放到一个根据Web服务引用(本例中的是WebServiceSample)来命名的命名空间中。
双击Button1按钮,给其添加一个Click事件处理程序button1_Click,并添加如下两条语句:
- protected void Button1_Click(object sender, EventArgs e)
- {
- Service client = new Service();
- TextBox2.Text = client.HelloWorld(TextBox1.Text);
- }
(4) 选择【生成】|【生成网站】命令,编译该项目。在【解决方案资源管理器】中,右击Default,在弹出的菜单中选择【在浏览器中查看】命令,可以启动浏览器,在原始字符串文本框中输入一个测试消息。单击按钮,调用Web服务,在结果文本框中得到相应的消息,如图14-12所示。
|
(点击查看大图)图14-12 【例14-2】执行结果 |
添加服务引用会创建基于WSDL文档的代理类。代理类向服务发送SOAP请求。 |