本帖最后由 jnhoodlum 于 2013-12-30 18:51 编辑 本文参与趣米杯征文活动,如需转载请注明出处和作者
这一讲我们就主要实现一下码农天气的首页:
这个页面有城市名,当天的天气的logo
,当前温度,当前天气,湿度,风力,以及未来5
天的天气的预报数据,这些数据是从哪里得到的呢?
这个问题我找了很长时间,终于功夫不负有心人,让我在彩虹天气的strings.xml
里面找到了:
这个是我反解的彩虹天气的资源文件,最后2
行就是我们要使用的请求天气数据的接口。真是踏破铁鞋无觅处,得来全不费工夫!
对于第1
个接口,返回信息比较全面,也是以json
格式提供。请求北京的天气数据:
http://m.weather.com.cn/data/101010100.html
,返回的格式如下(注意://
是我添加的注释):
{"weatherinfo":{
//
基本信息
"city":"
北京","city_en":"beijing","date_y":"2013
年12
月30
日","date":"","week":"
星期一","fchh":"11","cityid":"101010100",
//
摄氏温度
"temp1":"8
℃~-5
℃","temp2":"8
℃~-4
℃","temp3":"9
℃~-4
℃","temp4":"8
℃~-4
℃","temp5":"7
℃~-5
℃","temp6":"6
℃~-5
℃",
//
华氏温度
"tempF1":"46.4
℉~23
℉","tempF2":"46.4
℉~24.8
℉","tempF3":"48.2
℉~24.8
℉","tempF4":"46.4
℉~24.8
℉","tempF5":"44.6
℉~23
℉","tempF6":"42.8
℉~23
℉",
//
天气描述
"weather1":"
晴","weather2":"
晴","weather3":"
晴","weather4":"
晴","weather5":"
晴转多云","weather6":"
多云转晴",
//
天气描述图片序号
"img1":"0","img2":"99","img3":"0","img4":"99","img5":"0","img6":"99","img7":"0","img8":"99","img9":"0","img10":"1","img11":"1","img12":"0","img_single":"0",
//
图片名称
"img_title1":"
晴","img_title2":"
晴","img_title3":"
晴","img_title4":"
晴","img_title5":"
晴","img_title6":"
晴","img_title7":"
晴","img_title8":"
晴","img_title9":"
晴","img_title10":"
多云","img_title11":"
多云","img_title12":"
晴","img_title_single":"
晴",
//
风速描述
"wind1":"
微风","wind2":"
北风3-4
级转微风","wind3":"
微风","wind4":"
微风","wind5":"
微风","wind6":"
微风","fx1":"
微风","fx2":"
微风",
//
风速级别描述
"fl1":"
小于3
级","fl2":"3-4
级转小于3
级","fl3":"
小于3
级","fl4":"
小于3
级","fl5":"
小于3
级","fl6":"
小于3
级",
//
今天穿衣指数
"index":"
冷","index_d":"
天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。",
//48
小时穿衣指数
"index48":"
冷","index48_d":"
天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。",
//
紫外线及48
小时紫外线
"index_uv":"
中等","index48_uv":"
中等",
//
洗车
"index_xc":"
适宜",
//
旅游
"index_tr":"
适宜",
//
舒适指数
"index_co":"
较舒适","st1":"8","st2":"-5","st3":"7","st4":"-1","st5":"8","st6":"-2",
//
晨练
"index_cl":"
适宜",
//
晾晒
"index_ls":"
基本适宜",
//
过敏
"index_ag":"
极不易发"}}
有些小伙伴可能就会问了,那个101010100这串数据是哪来的呢?其实这个就是中国天气网自己定义的北京的城市代码,我上网搜了一下,网上还是有很多好人的(或者像我一样无聊的人),他们已经把全国所有城市的代码都给扒了下来:
北京:101010100
朝阳:101010300
顺义:101010400
怀柔:101010500
通州:101010600
昌平:101010700
延庆:101010800
丰台:101010900
石景山:101011000
大兴:101011100
房山:101011200
密云:101011300
门头沟:101011400
平谷:101011500
八达岭:101011600
佛爷顶:101011700
汤河口:101011800
密云上甸子:101011900
斋堂:101012000
霞云岭:101012100
北京城区:101012200
海淀:101010200
天津:101030100
宝坻:101030300
东丽:101030400
西青:101030500
北辰:101030600
蓟县:101031400
汉沽:101030800
静海:101030900
津南:101031000
塘沽:101031100
大港:101031200
武清:101030200
宁河:101030700
上海:101020100
宝山:101020300
嘉定:101020500
南汇:101020600
浦东:101021300
青浦:101020800
松江:101020900
奉贤:101021000
崇明:101021100
徐家汇:101021200
闵行:101020200
金山:101020700
石家庄:101090101
张家口:101090301
承德:101090402
唐山:101090501
秦皇岛:101091101
沧州:101090701
衡水:101090801
邢台:101090901
邯郸:101091001
保定:101090201
廊坊:101090601
郑州:101180101
新乡:101180301
许昌:101180401
平顶山:101180501
信阳:101180601
南阳:101180701
开封:101180801
洛阳:101180901
商丘:101181001
焦作:101181101
鹤壁:101181201
濮阳:101181301
周口:101181401
漯河:101181501
驻马店:101181601
三门峡:101181701
济源:101181801
安阳:101180201
合肥:101220101
芜湖:101220301
淮南:101220401
马鞍山:101220501
安庆:101220601
宿州:101220701
阜阳:101220801
亳州:101220901
黄山:101221001
滁州:101221101
淮北:101221201
铜陵:101221301
宣城:101221401
六安:101221501
巢湖:101221601
池州:101221701
蚌埠:101220201
杭州:101210101
舟山:101211101
湖州:101210201
嘉兴:101210301
金华:101210901
绍兴:101210501
台州:101210601
温州:101210701
丽水:101210801
衢州:101211001
宁波:101210401
重庆:101040100
合川:101040300
南川:101040400
江津:101040500
万盛:101040600
渝北:101040700
北碚:101040800
巴南:101040900
长寿:101041000
黔江:101041100
万州天城:101041200
万州龙宝:101041300
涪陵:101041400
开县:101041500
城口:101041600
云阳:101041700
巫溪:101041800
奉节:101041900
巫山:101042000
潼南:101042100
垫江:101042200
梁平:101042300
忠县:101042400
石柱:101042500
大足:101042600
荣昌:101042700
铜梁:101042800
璧山:101042900
丰都:101043000
武隆:101043100
彭水:101043200
綦江:101043300
酉阳:101043400
秀山:101043600
沙坪坝:101043700
永川:101040200
福州:101230101
泉州:101230501
漳州:101230601
龙岩:101230701
晋江:101230509
南平:101230901
厦门:101230201
宁德:101230301
莆田:101230401
三明:101230801
兰州:101160101
平凉:101160301
庆阳:101160401
武威:101160501
金昌:101160601
嘉峪关:101161401
酒泉:101160801
天水:101160901
武都:101161001
临夏:101161101
合作:101161201
白银:101161301
定西:101160201
张掖:101160701
广州:101280101
惠州:101280301
梅州:101280401
汕头:101280501
深圳:101280601
珠海:101280701
佛山:101280800
肇庆:101280901
湛江:101281001
江门:101281101
河源:101281201
清远:101281301
云浮:101281401
潮州:101281501
东莞:101281601
中山:101281701
阳江:101281801
揭阳:101281901
茂名:101282001
汕尾:101282101
韶关:101280201
南宁:101300101
柳州:101300301
来宾:101300401
桂林:101300501
梧州:101300601
防城港:101301401
贵港:101300801
玉林:101300901
百色:101301001
钦州:101301101
河池:101301201
北海:101301301
崇左:101300201
贺州:101300701
贵阳:101260101
安顺:101260301
都匀:101260401
兴义:101260906
铜仁:101260601
毕节:101260701
六盘水:101260801
遵义:101260201
凯里:101260501
昆明:101290101
红河:101290301
文山:101290601
玉溪:101290701
楚雄:101290801
普洱:101290901
昭通:101291001
临沧:101291101
怒江:101291201
香格里拉:101291301
丽江:101291401
德宏:101291501
景洪:101291601
大理:101290201
曲靖:101290401
保山:101290501
呼和浩特:101080101
乌海:101080301
集宁:101080401
通辽:101080501
阿拉善左旗:101081201
鄂尔多斯:101080701
临河:101080801
锡林浩特:101080901
呼伦贝尔:101081000
乌兰浩特:101081101
包头:101080201
赤峰:101080601
南昌:101240101
上饶:101240301
抚州:101240401
宜春:101240501
鹰潭:101241101
赣州:101240701
景德镇:101240801
萍乡:101240901
新余:101241001
九江:101240201
吉安:101240601
武汉:101200101
黄冈:101200501
荆州:101200801
宜昌:101200901
恩施:101201001
十堰:101201101
神农架:101201201
随州:101201301
荆门:101201401
天门:101201501
仙桃:101201601
潜江:101201701
襄樊:101200201
鄂州:101200301
孝感:101200401
黄石:101200601
咸宁:101200701
成都:101270101
自贡:101270301
绵阳:101270401
南充:101270501
达州:101270601
遂宁:101270701
广安:101270801
巴中:101270901
泸州:101271001
宜宾:101271101
内江:101271201
资阳:101271301
乐山:101271401
眉山:101271501
凉山:101271601
雅安:101271701
甘孜:101271801
阿坝:101271901
德阳:101272001
广元:101272101
攀枝花:101270201
银川:101170101
中卫:101170501
固原:101170401
石嘴山:101170201
吴忠:101170301
西宁:101150101
黄南:101150301
海北:101150801
果洛:101150501
玉树:101150601
海西:101150701
海东:101150201
海南:101150401
济南:101120101
潍坊:101120601
临沂:101120901
菏泽:101121001
滨州:101121101
东营:101121201
威海:101121301
枣庄:101121401
日照:101121501
莱芜:101121601
聊城:101121701
青岛:101120201
淄博:101120301
德州:101120401
烟台:101120501
济宁:101120701
泰安:101120801
西安:101110101
延安:101110300
榆林:101110401
铜川:101111001
商洛:101110601
安康:101110701
汉中:101110801
宝鸡:101110901
咸阳:101110200
渭南:101110501
太原:101100101
临汾:101100701
运城:101100801
朔州:101100901
忻州:101101001
长治:101100501
大同:101100201
阳泉:101100301
晋中:101100401
晋城:101100601
吕梁:101101100
乌鲁木齐:101130101
石河子:101130301
昌吉:101130401
吐鲁番:101130501
库尔勒:101130601
阿拉尔:101130701
阿克苏:101130801
喀什:101130901
伊宁:101131001
塔城:101131101
哈密:101131201
和田:101131301
阿勒泰:101131401
阿图什:101131501
博乐:101131601
克拉玛依:101130201
拉萨:101140101
山南:101140301
阿里:101140701
昌都:101140501
那曲:101140601
日喀则:101140201
林芝:101140401
台北县:101340101
高雄:101340201
台中:101340401
海口:101310101
三亚:101310201
东方:101310202
临高:101310203
澄迈:101310204
儋州:101310205
昌江:101310206
白沙:101310207
琼中:101310208
定安:101310209
屯昌:101310210
琼海:101310211
文昌:101310212
保亭:101310214
万宁:101310215
陵水:101310216
西沙:101310217
南沙岛:101310220
乐东:101310221
五指山:101310222
琼山:101310102
长沙:101250101
株洲:101250301
衡阳:101250401
郴州:101250501
常德:101250601
益阳:101250700
娄底:101250801
邵阳:101250901
岳阳:101251001
张家界:101251101
怀化:101251201
黔阳:101251301
永州:101251401
吉首:101251501
湘潭:101250201
南京:101190101
镇江:101190301
苏州:101190401
南通:101190501
扬州:101190601
宿迁:101191301
徐州:101190801
淮安:101190901
连云港:101191001
常州:101191101
泰州:101191201
无锡:101190201
盐城:101190701
哈尔滨:101050101
牡丹江:101050301
佳木斯:101050401
绥化:101050501
黑河:101050601
双鸭山:101051301
伊春:101050801
大庆:101050901
七台河:101051002
鸡西:101051101
鹤岗:101051201
齐齐哈尔:101050201
大兴安岭:101050701
长春:101060101
延吉:101060301
四平:101060401
白山:101060901
白城:101060601
辽源:101060701
松原:101060801
吉林:101060201
通化:101060501
沈阳:101070101
鞍山:101070301
抚顺:101070401
本溪:101070501
丹东:101070601
葫芦岛:101071401
营口:101070801
阜新:101070901
辽阳:101071001
铁岭:101071101
朝阳:101071201
盘锦:101071301
大连:101070201
锦州:101070701
大家看了这堆代码也不要害怕,这些代码我已经按照省和城市的分类做了一个数据库,最后一讲的时候会随代码一起上传,以后大家只管调用就好了。
彩虹天气的资源文件里还有一个接口:
http://www.weather.com.cn/data/sk/%s.html
这个是干吗用的呢?把%s
换成北京市的城市代码,请求后的数据:
{"weatherinfo":{"city":"
北京","cityid":"101010100",
//
当前温度
"temp":"6",
//
风向
"WD":"
西风",
//
风力
"WS":"1
级",
//
湿度
"SD":"15%","WSE":"1","time":"17:10","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB"}}
有了这些数据,加上彩虹天气的布局文件(反解一下彩虹天气就能得到了,如果有小伙伴还不会反解,google
一下吧,很简单的),大家应该就可以很轻松的做完彩虹天气的首页-
预报和首页-
指数的功能啦!
不过彩虹天气的指数有个小问题:
他的指数我换了2
部手机,都看不清楚上面写的是什么,不知道小伙伴们能不能看到呢?
这一讲最后再给大家推荐一个开源的项目:
http://loopj.com/android-async-http/
,各位小伙伴在做网络编程的时候可以考虑一下这个library
项目,我的大部分项目都是用的这个开源项目来请求网络数据的,据说
Instagram
和
Pinterest
也是用的这个开源项目,虽然具体没有考证过,但是从我个人的经验来看,这个项目还是比较好用的。
这一次就写到这,接口和布局文件我都告诉各位小伙伴了,希望大家也自己动手写写吧。下一次我们会分析一下中间的这个趋势是怎么做的:
|
#趣米杯#码农天气--码农自己的天气APP(二)
最新推荐文章于 2024-10-09 21:49:38 发布