`
raymond.chen
  • 浏览: 1437538 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

国内天气预报接口

 
阅读更多

中央气象台对外提供了一个查询天气预报的接口,通过该接口可以查询到县区一级的天气信息。获取天气信息的方法如下:

 

1、获取省份信息

public static String getCityCode(String url){
	try{
		HttpClient httpClient = new HttpClient();
		GetMethod mothod = new GetMethod(url);
		mothod.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
		int statusCode = httpClient.executeMethod(mothod);
		if(statusCode == HttpStatus.SC_OK){
			return mothod.getResponseBodyAsString();
		}
	}catch(Exception ex){
		ex.printStackTrace();
	}
	return null;
}

String provinceUrl = "http://m.weather.com.cn/data5/city.xml";
String provinceData = getCityCode(provinceUrl);
String[] provinceArray = provinceData.split(",");
for(String province: provinceArray){
	String[] provinceCodeArray = province.split("\\|");
	System.out.println(provinceCodeArray[0] + "," + provinceCodeArray[1]);
}

 结果类似如下: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|台湾

 

2、获取市信息

private static void generateCityCode(OutputStreamWriter writer, String provinceCode) throws IOException {
	String townUrl = "http://m.weather.com.cn/data5/city"+provinceCode+".xml";
	String townData = getCityCode(townUrl);
	String[] townArray = townData.split(",");
	for(String town: townArray){
		String[] townCodeArray = town.split("\\|");
		System.out.println("  " + townCodeArray[0] + "," + townCodeArray[1]);
	}
}

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

 

3、获取县区信息及其城市代码

private static void generateCountyCode(OutputStreamWriter writer,
		String provinceCode, String townCode) throws IOException {
	String countyUrl = "http://m.weather.com.cn/data5/city"+townCode+".xml";
	String countyData = getCityCode(countyUrl);
	String[] countyArray = countyData.split(",");
	for(String county: countyArray){
		String[] countyCodeArray = county.split("\\|");
		System.out.println("    " + countyCodeArray[0] + "," + countyCodeArray[1]);
		
		//城市代码
		String codeUrl = "http://m.weather.com.cn/data5/city"+countyCodeArray[0]+".xml";
		String codeData = getCityCode(codeUrl);
		String[] codeArray = codeData.split("\\|");
		System.out.println(codeArray[1]);
	}
}

 结果类似如下:280101|广州,280102|番禺,280103|从化,280104|增城,280105|花都

 

4、获取天气预报信息

private static void getWeather(String cityid){
	try{			
		String url = "http://m.weather.com.cn/data/"+cityid+".html";
		String jsonString = getCityCode(url);
		System.out.println(jsonString);
	}catch(Exception ex){
		ex.printStackTrace();
	}
}

   结果类似如下:

{"weatherinfo":{"city":"广州","city_en":"guangzhou","date_y":"2012年3月1日","date":"","week":"星期四","fchh":"08","cityid":"101280101","temp1":"18℃~12℃","temp2":"24℃~16℃","temp3":"24℃~19℃","temp4":"24℃~18℃","temp5":"22℃~18℃","temp6":"22℃~15℃","tempF1":"64.4℉~53.6℉","tempF2":"75.2℉~60.8℉","tempF3":"75.2℉~66.2℉","tempF4":"75.2℉~64.4℉","tempF5":"71.6℉~64.4℉","tempF6":"71.6℉~59℉","weather1":"小雨转雾","weather2":"雾","weather3":"雾转小雨","weather4":"阵雨转中到大雨","weather5":"中到大雨转中雨","weather6":"阵雨","img1":"7","img2":"18","img3":"18","img4":"99","img5":"18","img6":"7","img7":"3","img8":"22","img9":"22","img10":"8","img11":"3","img12":"99","img_single":"7","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":"微风","wind3":"微风","wind4":"微风","wind5":"微风","wind6":"微风","fx1":"微风","fx2":"微风","fl1":"小于3级","fl2":"小于3级","fl3":"小于3级","fl4":"小于3级","fl5":"小于3级","fl6":"小于3级","index":"舒适","index_d":"建议着薄型套装或牛仔衫裤等春秋过渡装。年老体弱者宜着套装、夹克衫等。","index48":"暖","index48_d":"建议着长袖衬衫加单裤等春秋过渡装。年老体弱者宜着针织长袖衬衫、马甲和长裤。","index_uv":"最弱","index48_uv":"最弱","index_xc":"不宜","index_tr":"适宜","index_co":"舒适","st1":"18","st2":"13","st3":"25","st4":"16","st5":"25","st6":"20","index_cl":"较不宜","index_ls":"不宜","index_ag":"极易发"}}

 

 

分享到:
评论

相关推荐

    全国天气预报接口

    全国天气预报接口根据城市名/id查询天气,向开发者提供的准确、稳定、丰富的天气数据云服务。

    易语言天气预报例程源码,易语言国内主要城市天气预报

    在"国内主要城市天气预报易语言源码"的压缩包中,包含了实现以上功能的源代码文件。对于学习易语言或者想要了解如何编写天气预报应用的人来说,这是一个宝贵的资源。通过阅读和分析这段源码,你可以了解到如何使用...

    免费天气预报接口源代码及文档

    本文将详细讲解“免费天气预报接口源代码及文档”这一主题,主要涵盖天气预报接口的使用、新浪天气预报API的特点以及如何通过Web服务或JavaScript AJAX技术进行数据获取。此外,我们还将探讨接口文档的重要性和扩展...

    天气预报小程序

    描述中提到的“实现天气预报查询,有天气预报接口”,表明这个小程序的核心功能是通过调用外部的天气预报接口来获取数据,并显示给用户。天气预报接口通常是第三方服务提供商提供的API(应用程序接口),允许开发者...

    基于百度接口的天气预报

    在IT行业中,开发一款基于百度接口的天气预报应用是一项常见的任务。这个应用允许用户添加他们关心的城市,并查询这些城市的实时及未来天气状况。下面将详细解释这个项目涉及到的知识点。 首先,我们需要理解“百度...

    从中央气象台网站获取实时天气预报(2010.1.31版)

    本文将详细讲解如何利用C#编程语言从中央气象台网站获取实时天气预报,以及与之相关的知识点。在2010年1月31日的版本中,开发人员使用了Visual Studio 2008(VS2008)来实现这一功能。此程序能够实时抓取并解析中央...

    Android Studio实现天气预报App,满分课设,入门必学

    通过调用天气预报接口来获得天气数据,用LIstView和GridView来搭建每个界面,将查询的天气信息存储在SQLiteDatabase中。应用主要包括了五大界面,每一个界面上都会有很多组件: - 首页面:有各种组件装饰,显示天气...

    百度天气接口 天气预报

    在IT行业中,获取实时天气信息是一项常见的需求,而百度天气接口提供了一个便捷的方式,使得开发者可以轻松地在自己的应用或网站上集成天气预报功能。本文将深入探讨如何使用百度天气接口来实现天气预报,以及如何...

    Rss全国各省市天气预报

    在本项目中,开发者通过网络接口抓取了全国各省市的天气预报数据,这些数据通常是以RSS feed的形式提供的。RSS feed包含了一系列条目,每一条目代表一个特定地区的天气信息,包括日期、温度、湿度、风向风速等。为了...

    jQuery全国城市天气预报API查询代码

    【jQuery全国城市天气预报API查询代码】是一款基于jQuery的实用工具,主要用于获取并展示中国各地城市的实时天气信息。开发者可以通过简单的API调用来实现对全国城市天气的查询功能,为网页应用添加实时气象信息,...

    新浪天气预报信息

    调用新浪天气预报接口,获取全国各个省市区的天气预报,包括天气情况,风向,最高温和最低温等。

    Xcode5 全国天气预报查询系统

    【Xcode5 全国天气预报查询系统】是一款基于Xcode5开发的移动应用,旨在为用户提供便捷的全国范围内的天气信息查询服务。这个项目利用了iOS平台的强大功能,结合实时天气数据接口,实现了用户友好的界面设计和流畅的...

    PHP调用全国天气预报数据接口查询天气示例

    本文实例讲述了PHP调用全国天气预报数据接口查询天气。分享给大家供大家参考,具体如下: 基于PHP的聚合数据全国天气预报API服务请求的代码样例 本代码示例是基于PHP的聚合数据全国天气预报API服务请求的代码样例,...

    大屏动画全球天气预报查询

    标题“大屏动画全球天气预报查询”所涉及的知识点主要集中在构建一个动态的、具有可视化效果的全球天气预报系统上。这个系统不仅提供天气查询功能,还可能包含一系列与天气相关的指数,如穿衣建议、感冒指数和运动...

    基于Android手机天气预报的设计

    本作品是完成android手机天气预报软件的设计,能通过公共的API接口来获得数据,主要界面只有一个,以下是任务目标。 1)要通过天气预报的公开接口 2)要求界面美观 3)能选择显示国内任意城市 4)显示城市的当天和三...

    Android天气预报代码

    在Android平台上开发天气预报应用是一项常见的任务,它涉及到多种技术和组件的综合运用。在这个"Android天气预报代码"项目中,我们可以深入探讨以下几个关键知识点: 1. **网络请求**:天气预报应用通常需要从网络...

    C#全国各地的天气预报

    【C#实现全国各地天气预报详解】 在现代生活中,获取实时天气信息已经成为日常需求。通过编程技术,我们可以构建自己的天气预报应用程序,为用户提供便捷的服务。本文将深入探讨如何使用C#语言来开发一个能够查询...

    天气预报接口

    基于C#的天气预报程序,可以获取全国各地的天气预报,并设置存储数据库,项目完整

Global site tag (gtag.js) - Google Analytics