赵光亮
摘要:Web Service的应用相当广泛,但在Windows Phone8中如何对Web Service数据的获取和应用却鲜有这方面的文章和书籍。该文对Windows Phone手机应用中如何利用Web Service获取相应的共享数据进行分析和应用,并以查询国内航班为例,分析Web Service的使用方法。
关键词:Windows Phone8; Web Service; 航班查询
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)09-0254-02
Windows Phone(简称:WP)是微软发布的一款手机操作系统。2010年10月正式发布了智能手机操作系统Windows Phone7, 2012年6月发布Windows Phone 8,采用和Windows 8相同的Windows NT内核。Windows Phone系统发布以来,由于iOS、Android强势,该系统市场占有率不高,该系统的应用和iOS、Android比起来也少得多。不过,随着微软CEO最近提出的“移动和云优先”战略,加上很多手机厂商相继宣布加入Windows Phone阵营,相信Windows Phone会有很大的发展,因此,Windows Phone应用开发具有很好的前景,本文介绍了如何从Web Service提供的数据中获取数据来丰富我的应用,比如:国内飞机航班时刻表、天气预报、中国邮政编码等。
1 Web Service概述
Web Service是一种标准化的实现网络服务以及实现异构程序之间方法调用的机制,主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的—种接口。Web Service也叫做XML Web Service,是一种可以接纳从Internet或者Intranet上的其他设备中传送过去的请求,轻量级的独立的通信技术,是经过soap在Web上提供的软件服务,运用WSDL文件停止阐明,并经过UDDI停止注册。Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows、Linux〉中使用。它通过XML格式的文件来描述方法、参数、调用和返回值,这种格式的XML文件称为WSDL(Web Service Description Language, Web服务描述语言)。
2 Windows Phone8开发环境搭建
WindowsPhone8的开发对计算机要求较高,具体要求计算机配置应该满足以下要求:(1)操作系统为Windows8 64位(X64)版本;(2)系统盘需要至少8G的剩余硬盘空间;(3)内存空间达到4GB或者以上;(4)WindowsPhone8模拟器基于Hyper-V,需要CPU支持二级地址转换技术。(5)安装Microsoft Visual Studio 2012和Windows Phone SDK 8.0。
3 Web Service在Windows Phone8中的应用
Web Service的应用相当广泛,但在Windows Phone8却鲜有这方面的文章和书籍,本文从参数的确定、数据绑定和数据获取等方面来进行分析应用。
3.1数据绑定
根据我的应用需要获取哪些参数,这个要根据Web Service的具体应用来确定,不同的应用参数是不一样的,具体的参数的确定通过以下方法来确定,这里以查询国内航班为例来说明如何确定参数。打开web服务的网站http://www.webxml.com.cn/zh_cn/web_services_item.aspx?id=494536374B66307964534D3D找到相应的web服务,通过getDomesticAirlinesTime方法获得相应的参数,确定参数以后,由于获得的数据可能有多项数据,所以应该构建数据模板,该数据可以通过System.Windows.DataTemplate自定义所需要的内容模版,这样一来,就可以在不重新定义整个模版的情况下,使控件呈现更丰富的内容,绑定数据类:
public class AirlinesTimes
{
public string Company { get; set; }//航空公司
public string AirlineCode { get; set; }//航班号
public string StartDrome { get; set; }//出发机场
public string ArriveDrome { get; set; }//到达机场
public string StartTime { get; set; }//出发时间
public string ArriveTime { get; set; }//到达时间
public string Mode { get; set; }//机型
public string AirlineStop { get; set; }//经停
public string Week { get; set; }}//飞行周期(星期)
3.2 解析互联网数据
使用HttpWebRequest类和HttpWebResponse类可以实现向远程服务器发出HTTP请求,并接受服务器的响应。操作流程:(1)调用WebRequest类的Create方法创建一个HttpWebRequest实例。(2)设置相关的参数,发送请求。(3)调用该对象的GetResponseStream方法得到流对象。HttpWebRequest类数据的提交是通過 GET 和 POST 两种方式来完成。
GET方式的实现过程如下:
创建httpWebRequest对象 HttpWebRequest不能直接通过new来创建,只能通过WebRequest.Create(url)的方式获得。通过Method指定请求类型:GET。请求的URL必须是绝对地址;其请求是异步回调方式的,从BeginGetResponse开始,通过AsyncCallback指定回调方法。下面是查询国内航班的实现代码。
航班查询代码:
private void Button_Click_1(object sender, RoutedEventArgs e)
{ if (string.IsNullOrWhiteSpace(this.txtStartCity.Text.Trim()) || string.IsNullOrWhiteSpace(this.txtLastCity.Text.Trim()) || string.IsNullOrWhiteSpace(this.txtDate.Text.Trim()))
{ MessageBox.Show("請输入准确的查询参数", "提示", MessageBoxButton.OK);
return;}
this.tipPanel.Visibility = System.Windows.Visibility.Visible;
string strUri = string.Format("http://webservice.webxml.com.cn/webservices/DomesticAirline.asmx/getDomesticAirlinesTime?startCity={0}&lastCity={1}&theDate={2}&userID={3}", txtStartCity.Text, txtLastCity.Text, txtDate.Text, string.Empty);
HttpWebRequest request =(HttpWebRequest) WebRequest.Create(strUri);
request.Method = "GET";
request.BeginGetResponse(new AsyncCallback(HandleResponse), request);}
4 总结
随着Windows Phone系统的逐渐成熟、大量厂商加入Windows Phone阵营,Windows Phone系统在将来的手机占有率上会不断上升,因此,Windows Phone系统的应用开发将越来越重要和普及,本文通过Windows Phone8中对Web Services的共享数据进行分析、获取和应用。帮助大家尽快掌握在Windows Phone应用中获取Web Services数据来提高应用质量。
参考文献:
[1] 刘伟世,王晋东,唐泽皓.基于Windows Phone平台的移动项目开发 [J]. 电脑开发与应用, 2014(2).
[2] 马宁.Windows Phone开发工具初体验 [J]. 程序员, 2010(7).
[3] 李晓珊. 苹果IOS、谷歌Android、微软Windows Phone 三大移动互联网系统开发策略比较研究[J].中国广播, 2013(5).
[4] 杨勇,邝宇锋,魏骞.移动互联网终端应用开发技术[J]. 中兴通讯技术, 2013(8).
[5] 林政.深入浅出Windows Phone 8应用开发[M].北京: 清华大学出版社,2013(6).
[6] 周家安. Windows Phone 8开发技巧与案例精解[M].北京: 机械工业出版社,2013(6).