移动平台调用Web Service应用研究
将数量庞大的个人电脑、服务器、智能设备和基于Internet的服务实现无缝地合作,使得不管用户在哪里Internet服务所需要的信息都将是可用的——不管用户使用的是什么计算设备、平台或应用程序[7],这是人们设想的下一代的互联网络。Microsoft ASP.NET 使我们能够轻松生成面向移动设备(从移动电话到个人数字助理)的功能强大的 Web 应用程序,它使我们能够面向各种移动设备进行编程,这些设备包括基于 WML 的移动电话到基于 HTML 的 Pocket PC。在前面我们已经讨论了Web Service具有平台无关的特性,而实际上只要客户端能够收发和处理基于XML的SOAP消息,不管它采用什么平台,都能够访问Web Service。采用vs.net环境开发的移动应用程序当然也能够访问远程服务器上的Web Service,于是这使得在vs.net环境中开发的基于Web Service和.Net Framework的移动应用程序不但能够支持各种移动设备,而且可以实现跨平台的数据集成。下面我们来看一个具体的通过移动设备查询天气预报的实例的实现过程。
首先通过vs.net的项目向导建立一个基于C#语言的移动应用项目,之后与上一节中编写客户端的过程中描述的一样,通过添加web引用建立远程天气预报Web Service接口的客户端代理类,将其命名为weatherWS。接下来默认的Form中添加一个Mobile TextBox控件和一个Mobile Button控件,将Mobile Button的Text属性设置为“Go!”,双击该Button以添加其实现代码,通过以下的代码:
MobileWS.weatherWS.getCHWeather weather = new MobileWS.weatherWS.getCHWeatherr();//建立天气查询Web Service类对象
MobileWS.weatherWS.weatherDataClass _data = new MobileWS.weatherWS.weatherDataClass();//建立保存数据的类对象
_data = weather.getWeather(this.txtCityName.Text);//发送SOAP消息,通过远程Web Service接口获取天气预报数据
即可取得远程Web Service提供的天气预报数据,接下来的工作仅仅是将获取的数据通过移动控件显示给客户端,具体操作步骤这里不加详述,在第三章将会有更加详细的应用。最后通过手机模拟器Openwave SDK 6.2.2 HTTP 得到模拟效果图如图2.4所示。
图2.4 手机上网查询天气预报示意图