和风天气api
1.我的key:
34e54ce6cef7419a9f1f5f616a??????
2.API地址:
城市接口: /x3/weather?cityid=城市ID&key=你的认证key
3.参数说明:
请求参数 说明 值
city 城市名称、支持中英文,不区分大小写和空格,城市和国家之间用英文逗号分割 北京、beijing、london,united kingdom
cityid 城市ID,参见 国内城市ID列表 CN101010100
cityip 城市IP,输入所在城市的任意IP 123.45.67.8
key 用户认证key
4.请求示例:
/x3/weather?cityid=CN101010100&key=34e54ce6cef7419a9f1f5f616a??????
5.返回数据示例:
{
"HeWeather data service 3.0": [
{
"aqi": {
"city": {
"aqi": "150",
"co": "2",
"no2": "76",
"o3": "50",
"pm10": "143",
"pm25": "115",
"qlty": "轻度污染",
"so2": "50"
}
},
"basic": {
"city": "北京",
"cnty": "中国",
"id": "CN101010100",
"lat": "39.904000",
"lon": "116.391000",
"update": {
"loc": "-03-12 17:50",
"utc": "-03-12 09:50"
}
},
"daily_forecast": [
{
"astro": {
"sr": "06:30",
"ss": "18:18"
},
"cond": {
"code_d": "101",
"code_n": "100",
"txt_d": "多云",
"txt_n": "晴"
},
"date": "-03-09",
"hum": "9",
"pcpn": "0.0",
"pop": "0",
"pres": "1034",
"tmp": {
"max": "9",
"min": "2"
},
"vis": "10",
"wind": {
"deg": "320",
"dir": "无持续风向",
"sc": "微风",
"spd": "4"
}
},
{
"astro": {
"sr": "06:28",
"ss": "18:19"
},
"cond": {
"code_d": "100",
"code_n": "100",
"txt_d": "晴",
"txt_n": "晴"
},
"date": "-03-10",
"hum": "14",
"pcpn": "0.0",
"pop": "0",
"pres": "1030",
"tmp": {
"max": "12",
"min": "-2"
},
"vis": "10",
"wind": {
"deg": "309",
"dir": "北风",
"sc": "3-4",
"spd": "10"
}
},
{
"astro": {
"sr": "06:26",
"ss": "18:20"
},
"cond": {
"code_d": "100",
"code_n": "101",
"txt_d": "晴",
"txt_n": "多云"
},
"date": "-03-11",
"hum": "12",
"pcpn": "0.0",
"pop": "0",
"pres": "1023",
"tmp": {
"max": "15",
"min": "4"
},
"vis": "10",
"wind": {
"deg": "201",
"dir": "无持续风向",
"sc": "微风",
"spd": "3"
}
},
{
"astro": {
"sr": "06:25",
"ss": "18:21"
},
"cond": {
"code_d": "101",
"code_n": "101",
"txt_d": "多云",
"txt_n": "多云"
},
"date": "-03-12",
"hum": "20",
"pcpn": "0.0",
"pop": "0",
"pres": "1015",
"tmp": {
"max": "15",
"min": "4"
},
"vis": "10",
"wind": {
"deg": "101",
"dir": "无持续风向",
"sc": "微风",
"spd": "6"
}
},
{
"astro": {
"sr": "06:23",
"ss": "18:22"
},
"cond": {
"code_d": "101",
"code_n": "101",
"txt_d": "多云",
"txt_n": "多云"
},
"date": "-03-13",
"hum": "12",
"pcpn": "0.0",
"pop": "0",
"pres": "1023",
"tmp": {
"max": "17",
"min": "6"
},
"vis": "10",
"wind": {
"deg": "338",
"dir": "无持续风向",
"sc": "微风",
"spd": "10"
}
},
{
"astro": {
"sr": "06:22",
"ss": "18:23"
},
"cond": {
"code_d": "101",
"code_n": "104",
"txt_d": "多云",
"txt_n": "阴"
},
"date": "-03-14",
"hum": "11",
"pcpn": "0.0",
"pop": "0",
"pres": "1018",
"tmp": {
"max": "18",
"min": "6"
},
"vis": "10",
"wind": {
"deg": "197",
"dir": "无持续风向",
"sc": "微风",
"spd": "3"
}
},
{
"astro": {
"sr": "06:20",
"ss": "18:24"
},
"cond": {
"code_d": "104",
"code_n": "100",
"txt_d": "阴",
"txt_n": "晴"
},
"date": "-03-15",
"hum": "12",
"pcpn": "0.0",
"pop": "0",
"pres": "1016",
"tmp": {
"max": "18",
"min": "6"
},
"vis": "10",
"wind": {
"deg": "125",
"dir": "无持续风向",
"sc": "微风",
"spd": "2"
}
}
],
"hourly_forecast": [
{
"date": "-03-12 01:00",
"hum": "24",
"pop": "0",
"pres": "1021",
"tmp": "1",
"wind": {
"deg": "170",
"dir": "南风",
"sc": "微风",
"spd": "8"
}
},
{
"date": "-03-12 04:00",
"hum": "32",
"pop": "0",
"pres": "1020",
"tmp": "1",
"wind": {
"deg": "119",
"dir": "东南风",
"sc": "微风",
"spd": "6"
}
},
{
"date": "-03-12 07:00",
"hum": "37",
"pop": "0",
"pres": "1019",
"tmp": "1",
"wind": {
"deg": "67",
"dir": "东北风",
"sc": "微风",
"spd": "7"
}
},
{
"date": "-03-12 10:00",
"hum": "30",
"pop": "0",
"pres": "1018",
"tmp": "4",
"wind": {
"deg": "66",
"dir": "东北风",
"sc": "微风",
"spd": "8"
}
},
{
"date": "-03-12 13:00",
"hum": "22",
"pop": "0",
"pres": "1016",
"tmp": "9",
"wind": {
"deg": "91",
"dir": "东风",
"sc": "微风",
"spd": "6"
}
},
{
"date": "-03-12 16:00",
"hum": "19",
"pop": "0",
"pres": "1015",
"tmp": "11",
"wind": {
"deg": "118",
"dir": "东南风",
"sc": "微风",
"spd": "6"
}
},
{
"date": "-03-12 19:00",
"hum": "24",
"pop": "0",
"pres": "1016",
"tmp": "9",
"wind": {
"deg": "214",
"dir": "西南风",
"sc": "微风",
"spd": "4"
}
},
{
"date": "-03-12 22:00",
"hum": "22",
"pop": "0",
"pres": "1018",
"tmp": "6",
"wind": {
"deg": "303",
"dir": "西北风",
"sc": "微风",
"spd": "12"
}
}
],
"now": {
"cond": {
"code": "101",
"txt": "多云"
},
"fl": "-8",
"hum": "32",
"pcpn": "0",
"pres": "1035",
"tmp": "9",
"vis": "10",
"wind": {
"deg": "340",
"dir": "西南风",
"sc": "3-4",
"spd": "10"
}
},
"status": "ok",
"suggestion": {
"comf": {
"brf": "较舒适",
"txt": "白天天气晴好,早晚会感觉偏凉,午后舒适、宜人。"
},
"cw": {
"brf": "较适宜",
"txt": "较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。"
},
"drsg": {
"brf": "较冷",
"txt": "建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。"
},
"flu": {
"brf": "较易发",
"txt": "天气较凉,较易发生感冒,请适当增加衣服。体质较弱的朋友尤其应该注意防护。"
},
"sport": {
"brf": "较不宜",
"txt": "天气较好,但考虑天气寒冷,推荐您进行室内运动,户外运动时请注意保暖并做好准备活动。"
},
"trav": {
"brf": "适宜",
"txt": "天气较好,同时又有微风伴您一路同行。虽会让人感觉有点凉,但仍适宜旅游,可不要错过机会呦!"
},
"uv": {
"brf": "最弱",
"txt": "属弱紫外线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。"
}
}
}
]
}
6.json数据格式整理:
o-JSON
a-HeWeather data service 3.0
o-[0]
o-aqi
o-basic
a-daily_forecast
a-hourly_forecast
o-now
v-status : "ok"
o-suggestion
(注:a代表JsonArray,o代表JsonObject)
7.字段说明:
(1)basic 城市基本信息
字段说明
city城市名称
id城市ID
cnty国家名称
lat纬度
lon经度
update数据更新时间,24小时制
loc数据更新的当地时间
utc数据更新的UTC时间
(2)aqi 空气质量指数
字段说明
city城市数据
aqi空气质量指数
pm25PM2.5 1小时平均值(ug/m³)
pm10PM10 1小时平均值(ug/m³)
so2二氧化硫1小时平均值(ug/m³)
no2二氧化氮1小时平均值(ug/m³)
co一氧化碳1小时平均值(ug/m³)
o3臭氧1小时平均值(ug/m³)
qlty空气质量类别
(3)suggestion 生活指数
字段说明
drsg穿衣指数
brf简介
txt详情
uv紫外线指数
brf简介
txt详情
cw洗车指数
brf简介
txt详情
trav旅游指数
brf简介
txt详情
flu感冒指数
brf简介
txt详情
sport运动指数
brf简介
txt详情
(4)alarms灾害预警
字段说明
title标题
type类型
level级别
stat状态
txt描述
(5)now 实况天气
字段说明
tmp当前温度(摄氏度)
fl体感温度
wind风力状况
spd风速(Kmph)
sc风力等级
deg风向(角度)
dir风向(方向)
cond天气状况
code天气代码
txt天气描述
pcpn降雨量(mm)
hum湿度(%)
pres气压
vis能见度(km)
(6)daily_forecast 天气预报
字段说明
date当地日期
astro天文数值
sr日出时间
ss日落时间
tmp温度
max最高温度(摄氏度)
min最低温度(摄氏度)
wind风力状况
spd风速(Kmph)
sc风力等级
deg风向(角度)
dir风向(方向)
cond天气状况
code_d白天天气代码
txt_d白天天气描述
code_n夜间天气代码
txt_n夜间天气描述
pcpn降雨量(mm)
pop降水概率
hum湿度(%)
pres气压
vis能见度(km)
(7)hourly_forecast 每小时天气预报
字段说明
date当地日期和时间
tmp当前温度(摄氏度)
wind风力状况
spd风速(Kmph)
sc风力等级
deg风向(角度)
dir风向(方向)
pop降水概率
hum湿度(%)
pres气压
(8)error code 错误代码
代码说明
ok接口正常
invalid key错误的用户 key
unknown city未知城市
no more requests超过访问次数
anr服务无响应或超时
permission denied没有访问权限
(代表仅限国内城市)
8.java(android)请求示例:
1 String httpUrl = "/x3/weather?cityid=城市ID&key=XXXXXXXXX";
2 String jsonResult = request(httpUrl);
3 System.out.println(jsonResult);
4 public static String request(String httpUrl) {
5 BufferedReader reader = null;String result = null;StringBuffer sbf = new StringBuffer();
6 try {
7 URL url = new URL(httpUrl);
8 HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
9 connection.setRequestMethod("GET");
10 connection.connect();
11 InputStream is = connection.getInputStream();
12 reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
13 String strRead = null;
14 while ((strRead = reader.readLine()) != null) {
15 sbf.append(strRead); sbf.append("\r\n");
16 }
17 reader.close();
18 result = sbf.toString();
19 } catch (Exception e) { e.printStackTrace(); }
20 return result;
21 }
9.天气代码对照:
代码中文英文图标
100晴Sunny/Clear100.png
101多云Cloudy101.png
102少云Few Clouds102.png
103晴间多云Partly Cloudy103.png
104阴Overcast104.png
200有风Windy200.png
201平静Calm201.png
202微风Light Breeze202.png
203和风Moderate/Gentle Breeze203.png
204清风Fresh Breeze204.png
205强风/劲风Strong Breeze205.png
206疾风High Wind, Near Gale206.png
207大风Gale207.png
208烈风Strong Gale208.png
209风暴Storm209.png
210狂爆风Violent Storm210.png
211飓风Hurricane211.png
212龙卷风Tornado212.png
213热带风暴Tropical Storm213.png
300阵雨Shower Rain300.png
301强阵雨Heavy Shower Rain301.png
302雷阵雨Thundershower302.png
303强雷阵雨Heavy Thunderstorm303.png
304雷阵雨伴有冰雹Hail304.png
305小雨Light Rain305.png
306中雨Moderate Rain306.png
307大雨Heavy Rain307.png
308极端降雨Extreme Rain308.png
309毛毛雨/细雨Drizzle Rain309.png
310暴雨Storm310.png
311大暴雨Heavy Storm311.png
312特大暴雨Severe Storm312.png
313冻雨Freezing Rain313.png
400小雪Light Snow400.png
401中雪Moderate Snow401.png
402大雪Heavy Snow402.png
403暴雪Snowstorm403.png
404雨夹雪Sleet404.png
405雨雪天气Rain And Snow405.png
406阵雨夹雪Shower Snow406.png
407阵雪Snow Flurry407.png
500薄雾Mist500.png
501雾Foggy501.png
502霾Haze502.png
503扬沙Sand503.png
504浮尘Dust504.png
506火山灰Volcanic Ash506.png
507沙尘暴Duststorm507.png
508强沙尘暴Sandstorm508.png
900热Hot900.png
901冷Cold901.png
999未知Unknown999.png