一:接口地址

接口地址:

http://www.weather.com.cn/data/sk/101010100.html

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

http://m.weather.com.cn/data/101010100.html


url中的101010100是城市代码,这里是北京的城市代码。只需要改变城市代码,就可以得到所在城市的天气信息

二:java工具类调用天气接口

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONObject;
/**
* java调用中央气象局天气预报接口
*
* @author Administrator
*
*/
public class WeatherUtil {
/**
* 获取一周天气<br>
* 方 法 名:getWeekWeatherMap <br>
* @param Cityid 城市编码
*/
public static List<Map<String, Object>> getWeekWeatherMap(String Cityid)
throws IOException, NullPointerException {
// 连接中央气象台的API
URL url = new URL("http://m.weather.com.cn/data/" + Cityid + ".html");
URLConnection connectionData = url.openConnection();
connectionData.setConnectTimeout(1000);
// 得到1到6天的天气情况
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
connectionData.getInputStream(), "UTF-8"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null)
sb.append(line);
String datas = sb.toString();
System.out.println(datas);
JSONObject jsonData = JSONObject.fromObject(datas);
JSONObject info = jsonData.getJSONObject("weatherinfo");
for (int i = 1; i <= 6; i++) {
// 得到未来6天的日期
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, i - 1);
Date date = cal.getTime();
SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日");
Map<String, Object> map = new HashMap<String, Object>();
map.put("city", info.getString("city").toString());// 城市
map.put("date_y", sf.format(date));// 日期
map.put("week", getWeek(cal.get(Calendar.DAY_OF_WEEK)));// 星期
map.put("fchh", info.getString("fchh").toString());// 发布时间
map.put("weather", info.getString("weather" + i).toString());// 天气
map.put("temp", info.getString("temp" + i).toString());// 温度
map.put("wind", info.getString("wind" + i).toString());// 风况
map.put("fl", info.getString("fl" + i).toString());// 风速
// map.put("index", info.getString("index").toString());//
// 今天的穿衣指数
// map.put("index_uv", info.getString("index_uv").toString());//
// 紫外指数
// map.put("index_tr", info.getString("index_tr").toString());//
// 旅游指数
// map.put("index_co", info.getString("index_co").toString());//
// 舒适指数
// map.put("index_cl", info.getString("index_cl").toString());//
// 晨练指数
// map.put("index_xc", info.getString("index_xc").toString());//
// 洗车指数
// map.put("index_d", info.getString("index_d").toString());//
// 天气详细穿衣指数
list.add(map);
}
} catch (SocketTimeoutException e) {
System.out.println("连接超时");
} catch (FileNotFoundException e) {
System.out.println("加载文件出错");
}
return list;
}
/**
*
* 获取实时天气1<br>
* 方 法 名: getTodayWeather <br>
*
* @param Cityid
* 城市编码
*/
public static Map<String, Object> getTodayWeather1(String Cityid)
throws IOException, NullPointerException {
// 连接中央气象台的API
URL url = new URL("http://www.weather.com.cn/data/sk/" + Cityid
+ ".html");
URLConnection connectionData = url.openConnection();
connectionData.setConnectTimeout(1000);
Map<String, Object> map = new HashMap<String, Object>();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
connectionData.getInputStream(), "UTF-8"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null)
sb.append(line);
String datas = sb.toString();
System.out.println(datas);
JSONObject jsonData = JSONObject.fromObject(datas);
JSONObject info = jsonData.getJSONObject("weatherinfo");
map.put("city", info.getString("city").toString());// 城市
map.put("temp", info.getString("temp").toString());// 温度
map.put("WD", info.getString("WD").toString());// 风向
map.put("WS", info.getString("WS").toString());// 风速
map.put("SD", info.getString("SD").toString());// 湿度
map.put("time", info.getString("time").toString());// 发布时间
} catch (SocketTimeoutException e) {
System.out.println("连接超时");
} catch (FileNotFoundException e) {
System.out.println("加载文件出错");
}
return map;
}
/**
*
* 获取实时天气2<br>
* 方 法 名: getTodayWeather <br>
*
* @param Cityid
* 城市编码
*/
public static Map<String, Object> getTodayWeather2(String Cityid)
throws IOException, NullPointerException {
// 连接中央气象台的API
URL url = new URL("http://www.weather.com.cn/data/cityinfo/" + Cityid
+ ".html");
URLConnection connectionData = url.openConnection();
connectionData.setConnectTimeout(1000);
Map<String, Object> map = new HashMap<String, Object>();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
connectionData.getInputStream(), "UTF-8"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null)
sb.append(line);
String datas = sb.toString();
System.out.println(datas);
JSONObject jsonData = JSONObject.fromObject(datas);
JSONObject info = jsonData.getJSONObject("weatherinfo");
map.put("city", info.getString("city").toString());// 城市
map.put("temp1", info.getString("temp1").toString());// 最高温度
map.put("temp2", info.getString("temp2").toString());// 最低温度
map.put("weather", info.getString("weather").toString());//天气
map.put("ptime", info.getString("ptime").toString());// 发布时间
} catch (SocketTimeoutException e) {
System.out.println("连接超时");
} catch (FileNotFoundException e) {
System.out.println("加载文件出错");
}
return map;
}
private static String getWeek(int iw) {
String weekStr = "";
switch (iw) {
case 1:
weekStr = "星期天";
break;
case 2:
weekStr = "星期一";
break;
case 3:
weekStr = "星期二";
break;
case 4:
weekStr = "星期三";
break;
case 5:
weekStr = "星期四";
break;
case 6:
weekStr = "星期五";
break;
case 7:
weekStr = "星期六";
break;
default:
break;
}
return weekStr;
}
public static void main(String[] args) {
try {
//测试获取实时天气1(包含风况,湿度)
Map<String, Object> map = getTodayWeather1("101010100");
System.out.println(map.get("city") + "\t" + map.get("temp")
+ "\t" + map.get("WD") + "\t" + map.get("WS")
+ "\t" + map.get("SD") + "\t" + map.get("time"));
//测试获取实时天气2(包含天气,温度范围)
Map<String, Object> map2 = getTodayWeather2("101010100");
System.out.println(map2.get("city") + "\t" + map2.get("temp1")
+ "\t" + map2.get("temp2") + "\t" + map2.get("weather")
+ "\t" + map2.get("ptime"));
//测试获取一周天气
List<Map<String, Object>> listData = getWeekWeatherMap("101010100");
for (int j = 0; j < listData.size(); j++) {
Map<String, Object> wMap = listData.get(j);
System.out.println(wMap.get("city") + "\t" + wMap.get("date_y")
+ "\t" + wMap.get("week") + "\t" + wMap.get("weather")
+ "\t" + wMap.get("temp") + "\t" + wMap.get("wind")
+ "\t" + wMap.get("fl"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

三:输出结果


文章来源: http://blog.csdn.net/u013628152/article/details/43484111需要的jar包

<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.3</version>
</dependency>
<dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.1</version>
</dependency>
<dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version>
</dependency>
<dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version>
</dependency>
<dependency><groupId>commons-pool</groupId><artifactId>commons-pool</artifactId><version>1.6</version>
</dependency>
<dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.9</version>
</dependency>
<dependency><groupId>net.sf.ezmorph</groupId><artifactId>ezmorph</artifactId><version>1.0.6</version>
</dependency>

中央气象局天气预报接口---java实现相关推荐

  1. java实现---中央气象局天气预报接口

    一.说明 天气预报的webService地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx (天气预报 Web 服务,数据每2 ...

  2. 中央气象局天气预报接口城市代码大全

    最近做了一个天气预报应用,在寻找数据源的时候费了不少周折,原来的谷歌.新浪.雅虎等等API似乎都不能用了(也许是我申请不到KEY),最后用了中央气象局的接口. 下面是这些接口的地址,都是HTTP方式, ...

  3. 中央气象局天气预报城市对应的编码(到县为止)

    按惯例AD下搜索易:http://www.i-ssy.com/ 你是否是一名搜索控? 你是否每天频繁的在不同的搜索引擎间来回穿梭?你是否厌倦了不停的打开浏览器.输入搜索引擎网址?使用搜索易吧,Ta将大 ...

  4. java ip调天气预报接口_JAVA + WeatherWebService 实现天气预报接口调取

    两步完成接口调取 第一步:引入jar包 若在线jar包失效,私信我即可. 第二步:创建类实现 在JAVA项目中创建java类(我的是:WeatherUtil) 修改类中cityid为你需要展示的地区i ...

  5. java ip调天气预报接口_java调天气预报接口

    国家气象局提供的天气预报接口 接口地址: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/data ...

  6. java天气预报免费接口api_NowAPI 的天气预报接口的实现

    [实例简介] 实现 NowAPI(http://www.nowapi.com) 的 天气预报 接口 ,使用 java开发 ,用于 Android. 不完善之处,还请大家不吝赐教. [实例截图] [核心 ...

  7. 气象局天气预报信息接口实现

    中国国家气象局天气预报接口总共提供了三个: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/dat ...

  8. Android:国家气象局天气预报接口JSON完全解析

    天气预报的接口看这里:Android:国家气象局提供的天气预报接口(完整Json接口) 最近由于谷歌天气预报接口出现了一些小问题,没办法,只能重新写一下国家气象局天气预报接口JSON完全解析,程序包括 ...

  9. 小程序开发学习(4)---天气预报接口API篇

    文章目录 1.实现用户定位API 2.获取定位信息 1.实现用户定位API 天气预报API大多数都是需要收费的,但是在现在学习阶段可以不需要购买收费的,网上能找到免费的天气预报API地址,但是可能不是 ...

最新文章

  1. etcd 笔记(05)— etcd 代码结构、各模块功能、整体架构、各模块之间的交互、请求和应答流程
  2. docker之Dockerfile
  3. 传智播客韩顺平老师2011ssh实战项目校内网的数据库设计32张表全解
  4. 在大促中什么影响了数据库性能
  5. php生成文件index.html,Typecho生成静态首页index.html文件
  6. APUE学习之三个特殊位 设置用户ID(set-user-ID),设置组ID(set-group-ID),sticky...
  7. frame页面跳转和信息提示页面
  8. VMware 修复可窃取管理员凭据的高危漏洞
  9. Leetcode刷题修炼手册
  10. (转载)Silverlight同步(Synchronous)调用WCF服务
  11. Collection与Map
  12. ssq红蓝号码未出现间隔排序选号的回归计算中间率(红号出现3个以上再输出)
  13. 直击进博会 | 强生、默沙东、史赛克、雅培、丹纳赫、罗氏、拜耳等医药巨头带来哪些新产品、新技术?...
  14. win7系统如何开启蓝牙
  15. Q1:如何用 C# 计算相对时间 ?
  16. 正则正数,负数,整数,浮点数校验大全
  17. (二)ArcGIS JS 加载动态地图服务
  18. QT中的模态和非模态对话框
  19. Vue 项目应用 —— 后台管理系统模板
  20. 我的世界服务器地图名称修改,《我的世界》修改地图名称颜色教程

热门文章

  1. FPGA||ZYNQ概念理解之: Cortex-A9 处理器及架构
  2. B-4 真分数的约分
  3. 详解servlet生命周期
  4. 3G/4G/5G通信模块重启设计细节
  5. 前端 mediaRecorder 录制视频源代码实例,和本地播放器无法定位进度条问题分析和解决
  6. 微信支付的统一下单小demo
  7. L3-008 喊山 (30 分)(bfs)
  8. 2019程序员薪资大爆料!看看学个编程可以拿多少?
  9. 计算机小彩蛋大全,未定事件簿彩蛋大全 10个趣味小彩蛋总汇[多图]
  10. 亚马逊MWS开发--上传商品常见错误