用Java的方式封装了一个天气的接口,查询了好多,要么是要收费的,要么需要使用官方的密匙Key。
总不能项目上线了还要告诉运维记得换个key吧,想想就就得不现实。
1、接口介绍
所以,小编列举了几个网站,供大家使用,不需要key,完全免费,绝无后顾之忧:
首先,当然是【国国家气象局】中天气预报提供的接口,总共三个:
- 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”是城市代码,这里指代“北京”的城市代码。只需要改变城市代码,就可以得到所在城市的天气信息。其中,最详细的信息来自第三个接口,但是该接口已经停用了。
第一个,第二个目前可用,但是查询的信息并不全,也不支持未来几天的天气预报等信息。
但是,实际业务中我们有必要检索一个天气数据既全面,有支持未来几天预告的API。
所以,再推荐几个来自【万年历】的天气预报查询接口,总结两个:
- http://wthrcdn.etouch.cn/weather_mini?city=北京;
- http://www.sojson.com/open/api/weather/json.shtml?city=北京;
这两个接口还有一个明显的优势:不需要维护城市代码,可以使用城市名称进行天气查询,非常nice。
第二个天气API详情介绍在 API 中心:http://www.sojson.com/api/weather.html ,该接口经常发生变化,若无法访问请访问官网查看最新地址。
所以,小编写一下【万年历】的第一个接口【wthrcdn.etouch.cn】的Demo:
2、使用方法
天气实体类:WeatherInfo
public class WeatherInfo {
private String date; //时间
private String week; //星期
private String lunar; //农历时间
private String cityname; //城市名
private Str