最新说明:该接口已失效! 2014-03-04
可申请它公布的API,需申请:http://smart.weather.com.cn/wzfw/smart/weatherapi.shtml
在用Android获取天气预报数据时,大家一定会首先想到Google的天气预报API,其实除了Google的天气预报API,免费的天气预报接口还有http://www.webservicex.net/globalweather.asmx?op=GetWeather、http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx和中央气象台的天气预报,这三个是我最近试过的都可以访问,网上其实还介绍的有www.ayandy.com,不过我没试过 ^_^
现在就来谈一谈这几个服务,google的就不说了,www.webservicex.net的这个是一个国外的,获取中国国内的有点麻烦,且只有当天的天气,所以果断放弃...呵呵
而webservice.webxml.com.cn的这个确实不错,访问的数据是来自中国气象局http://www.cma.gov.cn/ 数据的准确就不用说了,但他分为付费和免费的,免费的服务有点不稳定,我就曾遇到一回,所以也不是很好,最后就只剩下中央气象台的天气预报的API了,这个我不想说太多,虽然获取时你首先要知道对应的城市码,有点麻烦,其它的如稳定性与广阔性也是很一流的,它可以精确到县和区.下面就直奔主题:
这个服务的天气预报的请求地址是:http://m.weather.com.cn/data/101070201.html,这个文本就是城市天气URL,101070201代表的为对应地区的编码,执行URL,得到一个返回文本,是JSON格式的,如下(经过格式化):
{
"weatherinfo":{
"city":"成都",
"city_en":"chengdu",
"date_y":"2011年11月30日",
"date":"辛卯年",
"week":"星期三",
"fchh":"11", //预报发布时间
"cityid":"101270101",
"temp1":"13℃~10℃",
"temp2":"14℃~6℃",
"temp3":"13℃~5℃",
"temp4":"14℃~8℃",
"temp5":"10℃~8℃",
"temp6":"11℃~6℃",
"tempF1":"55.4℉~50℉",
"tempF2":"57.2℉~42.8℉",
"tempF3":"55.4℉~41℉",
"tempF4":"57.2℉~46.4℉",
"tempF5":"50℉~46.4℉",
"tempF6":"51.8℉~42.8℉",
"weather1":"阴转多云",
"weather2":"多云转晴",
"weather3":"多云转阴",
"weather4":"阵雨",
"weather5":"阵雨转小雨",
"weather6":"小雨转阴",
"img1":"2",
"img2":"1",
"img3":"1",
"img4":"0",
"img5":"1",
"img6":"2",
"img7":"3",
"img8":"99",
"img9":"3",
"img10":"7",
"img11":"7",
"img12":"2",
"img_single":"2",
"img_title1&#