如今网上天气API非常多,我找了很长时间,发现了一个比较不错的API
易用天气:http://www.yytianqi.com/
完全免费,只不过每小时限制访问次数,30次每小时,应该够用了
①进入官网后点击“API介绍”
②参照URL的例子:
关于参数city和key如何设置,页面上都有很详细的解释
③数据解析(推荐用json):
json解析的jar包下载地址:
http://download.csdn.net/detail/zhengyikuangge/9546875
直接上参考代码:
/*
* 拿七天预报的数据为例
*/
// 要访问的URL
URL url = new URL(
" http://api.yytianqi.com/forecast7d?city=39.93,116.40&key=smdbnsrfkqnu53b8");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
BufferedInputStream in = new BufferedInputStream(conn.getInputStream());
// 字节数组(字节容器)
byte[] bs = new byte[5555];
// 读取字节流数据
in.read(bs);
// 转化成字符串
String result = new String(bs);
System.out.println("result=" + result);
// 解析第一层
JSONObject jo1 = JSONObject.fromObject(result);
// 获取键为data的值
String data = jo1.getString("data");
System.out.println("data=" + data);
// 解析第二层
JSONObject jo2 = JSONObject.fromObject(data);
// 获取键为list的值
String list = jo2.getString("list");
System.out.println("list="+list);
// 解析第三层,注意键为list的值的特点
JSONArray ja = JSONArray.fromObject(list);
// 求当天的白天气温
String qw1 = ja.getJSONObject(0).getString("qw1");
System.out.println("今天的白天气温为:" + qw1);