您的位置:首页 > 移动开发 > Android开发

Android天气预报程序(一)

2016-04-13 13:56 477 查看
功能需求:

1.可以罗列出全国所有的省 市 县

2.可以查看全国任意城市的天气信息

3.可以自由地切换城市,去查看其他城市的天气

4.提供手动更新以及后台自动更新天气的功能

这里我们准备使用中国天气网提供的API接口

想要罗列出中国所有的省份,只需要访问如下地址:http://www.weather.com.cn/data/list3/city.xml

(如果你是在浏览器上直接访问的话,有可能会得到一个错误提示,不用担心,这是因为浏览器认为服务器应该返回一个XML格式的数据,但实际上服务器返回的数据并不是XML格式所导致的,右键查看网页源代码就可以看到服务器返回的真实数据了)

服务器会返回一段文本信息,其中包含了中国所有省份名称以及省级代号,如下所示:

01|北京,02|上海,03|天津,04|重庆,05|黑龙江,06|吉林,07|辽宁,08|内蒙古,09|河北,10|山西,11|陕西,12|山东,13|新疆,14|西藏,15|青海,16|甘肃,17|宁夏,18|河南,19|江苏,20|湖北,21|浙江,22|安徽,23|福建,24|江西,25|湖南,26|贵州,27|四川,28|广东,29|云南,30|广西,31|海南,32|香港,33|澳门,34|台湾

不同省份之间以逗号分隔,省份名称和省级代号之间以单竖线分隔。

那么如何才能知道某个省内有哪些城市呢?

比如广东的代号为28,访问如下地址即可:view-source:http://www.weather.com.cn/data/list3/city28.xml

也就是说,只需要将省级代号添加到city的后面就行了,现在服务器返回的数据如下:

2801|广州,2802|韶关,2803|惠州,2804|梅州,2805|汕头,2806|深圳,2807|珠海,2808|佛山,2809|肇庆,2810|湛江,2811|江门,2812|河源,2813|清远,2814|云浮,2815|潮州,2816|东莞,2817|中山,2818|阳江,2819|揭阳,2820|茂名,2821|汕尾,2822|东沙岛

同理,访问广州:view-source:http://www.weather.com.cn/data/list3/city2801.xml

280101|广州,280102|番禺,280103|从化,280104|增城,280105|花都,280106|天河

访问番禺:view-source:http://www.weather.com.cn/data/list3/city280102.xml

这次,服务器返回的数据非常简短:

280102|101280102

其中,后半部分的101280102就是番禺所对应的天气代号了

这时候再去访问查询天气接口,将相应的天气代号填入即可,接口地址如下:

http://www.weather.com.cn/data/cityinfo/101280102.html

这样,服务器就会把番禺当前的天气信息以JSON格式返回给我们了,如下所示:

{"weatherinfo":{"city":"番禺","cityid":"101280102","temp1":"12℃","temp2":"24℃","weather":"晴","img1":"n0.gif","img2":"d0.gif","ptime":"18:00"}

其中city表示城市名,cityid表示城市对应的天气代号,temp1和temp2表示气温是几度到几度,weather表示今日天气信息的描述,img1和img2表示今日天气对应的图片,ptime表示天气发布的时间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: