稳定高效的天气API接口是很少有的,本站前一段时间开发了一个万年历,需要带天气预报,花了几天功夫,集成和容错处理好对外开放的天气接口。天气接口支持返回 JSON 和 XML 结果。并且可以获取到昨天,以及今天和未来4 天的天气预报。那么下面直接介绍天气预报的接口吧。
天气API详情介绍 在API 中心:http://www.sojson.com/api/weather.html ,下面只介绍下调用方式,然后 用 Java 语言调用演示一下。

天气预报 API 接口 JSON返回
public static void json() throws Exception{
//参数url化
String city = java.net.URLEncoder.encode("北京", "utf-8");
//拼地址
String apiUrl = String.format("http://www.sojson.com/open/api/weather/json.shtml?city=%s",city);
//开始请求
URL url= new URL(apiUrl);
URLConnection open = url.openConnection();
InputStream input = open.getInputStream();
//这里转换为String,带上包名,怕你们引错包
String result = org.apache.commons.io.IOUtils.toString(input,"utf-8");
//输出
System.out.println(result);
}
天气预报 JSON 返回值:
{ "data": { "yesterday": { "date": "26日星期五", "high": "高温 31℃", "fx": "南风", "low": "低温 17℃", "fl": "微风", "type": "晴" }, "city": "北京", "aqi": "83", "forecast": [ { "date": "27日星期六", "high": "高温 34℃", "fengli": "微风级", "low": "低温 21℃", "fengxiang": "西南风", "type": "晴" }, { "date": "28日星期天", "high": "高温 36℃", "fengli": "3-4级", "low": "低温 22℃", "fengxiang": "北风", "type": "多云" }, { "date": "29日星期一", "high": "高温 29℃", "fengli": "微风级", "low": "低温 18℃", "fengxiang": "东风", "type": "阴" }, { "date": "30日星期二", "high": "高温 30℃", "fengli": "微风级", "low": "低温 18℃", "fengxiang": "南风", "type": "阴" }, { "date": "31日星期三", "high": "高温 32℃", "fengli": "3-4级", "low": "低温 20℃", "fengxiang": "南风", "type": "多云" } ], "ganmao": "各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。", "wendu": "27" }, "status": 200, "message": "OK" }
天气预报 API XML返回方式
public static void xml() throws Exception{
//参数url化
String city = java.net.URLEncoder.encode("北京", "utf-8");
//拼地址
String apiUrl = String.format("http://www.sojson.com/open/api/weather/xml.shtml?city=%s",city);
//开始请求
URL url= new URL(apiUrl);
URLConnection open = url.openConnection();
InputStream input = open.getInputStream();
//这里转换为String,带上包名,怕你们引错包
String result = org.apache.commons.io.IOUtils.toString(input,"utf-8");
//输出
System.out.println(result);
}
天气预报 XML返回值:
北京
13:45
27
3级
38%
东风
04:51
19:33
83
61
极少数敏感人群应减少户外活动
良
颗粒物(PM2.5)
148
1
106
27
47
26日星期五
高温 31℃
低温 17℃
晴
南风
微风
晴
北风
微风
27日星期六
高温 34℃
低温 21℃
晴
西南风
微风级
晴
北风
微风级
28日星期天
高温 36℃
低温 22℃
多云
北风
3-4级
阴
东北风
微风级
29日星期一
高温 29℃
低温 18℃
阴
东风
微风级
阵雨
南风
微风级
30日星期二
高温 30℃
低温 18℃
阴
南风
微风级
多云
北风
微风级
31日星期三
高温 32℃
低温 20℃
多云
南风
3-4级
多云
南风
3-4级
晨练指数
适宜
天气不错,空气清新,是您晨练的大好时机,建议不同年龄段的人们积极参加户外健身活动。
舒适度
很不舒适
白天天气晴好,但烈日炎炎会使您会感到很热,很不舒适。
穿衣指数
炎热
天气炎热,建议着短衫、短裙、短裤、薄型T恤衫等清凉夏季服装。
感冒指数
少发
各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。
晾晒指数
极适宜
天气不错,极适宜晾晒。抓紧时机把久未见阳光的衣物搬出来晒晒太阳吧!
旅游指数
较适宜
天气较好,感觉有点热,不过有微风伴您一路同行,还是较适宜旅游的,外出请注意防晒哦!
紫外线强度
很强
紫外线辐射极强,建议涂擦SPF20以上、PA++的防晒护肤品,尽量避免暴露于日光下。
洗车指数
较适宜
较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。
运动指数
较适宜
天气较好,户外运动请注意防晒。推荐您进行室内运动。
约会指数
较不适宜
天气较热,建议尽量不要去室外约会,如果外出,请您挑选荫凉的地点。
雨伞指数
不带伞
天气较好,您在出门的时候无须带雨伞。
注意的一点就是,参数中文要转码。要url转码。 Java 如下:
//参数url化 String city = java.net.URLEncoder.encode("北京", "utf-8");
还有一点就是,编码为UTF-8
本站使用的Demo,是在万年历功能使用,下面是截图。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178606.html原文链接:https://javaforall.net
