天气预报API,天气预报API怎么用?这篇文章教会你!
天气预报API是一个针对一个地点或一个地区,查询当前天气编写的一个API调用接口,一般返回为XML或者JSON格式报文,通过此接口可以获取一个城市的温度、气候、最高气温、最低气温等数据的信息。
中文名
天气预报API
外文名
Weather Open API
类 别
API
说 明
天气预报获取接口
目录
1 程序介绍
2 测试工具
3 参数说明
4 调用实例
程序介绍
编辑 播报天气预报API是一个提供未来天气预报数据的一个API调用接口,通过此接口可以获取一个城市的温度、气候、PM2.5、湿度、最高最低气温等信息,从而应用自己编写的程序中。
测试工具
编辑 播报采用 Postman 或者采用 Sojson 在线测试工具。
参数说明
编辑 播报只需要一个参数city名称,可以是带市区县。具体参考以下表格。
参数名称 | 是否必填 | 类型 | 备注 |
city | 是 | String | 可以是city=北京,也可city=北京市 |
返回值说明
字段名称 | 类型 | 备注 |
yesterday | JSONObject | 昨天天气详情 |
forecast | JSONArray | 从今天开始的5天的天气详情 |
date | String | 日期+星期,如:26日星期五 |
high | String | 当日最高温,如:高温 34℃ |
low | String | 当日最低温 ,如:低温 21℃ |
fengxiang|fx | String | 风向,如:西南风 |
type | String | 天气描述,如:多云 |
ganmao | String | 对于天气的简短描述注意事项 |
wendu | String | 现在的温度 |
shidu | String | 当前湿度 |
pm25 | int | PM2.5 |
pm10 | int | PM10 |
notice | String | 对天气的描述语 |
sunrise | String | 当前城市的日出时间 |
sunset | String | 当前城市的日落时间 |
aqi | int | 空气质量 |
调用实例
编辑 播报JSON API 调用
采用Java Http方式调用,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public static void json() throws Exception{ //参数url化,以北京为实例 String city = java.net.URLEncoder.encode( "北京" , "utf-8" ); String apiUrl = "sojson 天气API URL" ; //拼地址 String apiUrl = String.format( "%s?city=%s" ,apiUrl,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 API 返回值
返回值以JSON返回,具体字段对应的意思,参考下面的参数和返回值说明。 [1]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | { "message" : "Success !" , "status" : 200, "city" : "合肥" , "count" : 4, "data" : { "shidu" : "92%" , "pm25" : 10, "pm10" : 15, "quality" : "优" , "wendu" : "27" , "ganmao" : "各类人群可自由活动" , "yesterday" : { "date" : "07日星期一" , "sunrise" : "05:29" , "high" : "高温 37.0℃" , "low" : "低温 28.0℃" , "sunset" : "19:03" , "aqi" : 55, "fx" : "南风" , "fl" : "<3级" , "type" : "雷阵雨" , "notice" : "空旷场地不要使用有金属尖端的雨伞" }, "forecast" : [ { "date" : "08日星期二" , "sunrise" : "05:30" , "high" : "高温 32.0℃" , "low" : "低温 26.0℃" , "sunset" : "19:02" , "aqi" : 34, "fx" : "南风" , "fl" : "<3级" , "type" : "中雨" , "notice" : "将出现中雨,请携带雨具,避免湿身" }, { "date" : "09日星期三" , "sunrise" : "05:31" , "high" : "高温 32.0℃" , "low" : "低温 25.0℃" , "sunset" : "19:01" , "aqi" : 40, "fx" : "西南风" , "fl" : "<3级" , "type" : "阴" , "notice" : "灰蒙蒙的天空就像模糊了的眼睛" }, { "date" : "10日星期四" , "sunrise" : "05:31" , "high" : "高温 35.0℃" , "low" : "低温 26.0℃" , "sunset" : "19:01" , "aqi" : 53, "fx" : "南风" , "fl" : "<3级" , "type" : "晴" , "notice" : "晴空万里,去沐浴阳光吧" }, { "date" : "11日星期五" , "sunrise" : "05:32" , "high" : "高温 35.0℃" , "low" : "低温 26.0℃" , "sunset" : "19:00" , "aqi" : 47, "fx" : "东南风" , "fl" : "<3级" , "type" : "多云" , "notice" : "绵绵的云朵,形状千变万化" }, { "date" : "12日星期六" , "sunrise" : "05:33" , "high" : "高温 30.0℃" , "low" : "低温 25.0℃" , "sunset" : "18:59" , "aqi" : 32, "fx" : "南风" , "fl" : "<3级" , "type" : "中雨" , "notice" : "现正下雨,地湿路滑,请小心开车" } ] } } |
API XML 调用
返回值直接返回XML,但是比上面的JSON返回值要详细一点。下面采用Java HTTP调用方式。 [1]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public static void xml() throws Exception{ //参数url化 String city = java.net.URLEncoder.encode( "茶陵县" , "utf-8" ); String apiUrl = "sojson天气API URL" ; //拼地址 String apiUrl = String.format( "%s?city=%s" ,apiUrl,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 XML 返回值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | < resp > < city >茶陵</ city > < updatetime >13:05</ updatetime > < wendu >34</ wendu > < fengli > <![CDATA[ 5级 ]]> </ fengli > < shidu >52%</ shidu > < fengxiang >西风</ fengxiang > < sunrise_1 >05:56</ sunrise_1 > < sunset_1 >19:05</ sunset_1 > < sunrise_2 /> < sunset_2 /> < yesterday > < date_1 >11日星期五</ date_1 > < high_1 >高温 33℃</ high_1 > < low_1 >低温 26℃</ low_1 > < day_1 > < type_1 >阵雨</ type_1 > < fx_1 >南风</ fx_1 > < fl_1 > <![CDATA[ <3级 ]]> </ fl_1 > </ day_1 > < night_1 > < type_1 >多云</ type_1 > < fx_1 >南风</ fx_1 > < fl_1 > <![CDATA[ <3级 ]]> </ fl_1 > </ night_1 > </ yesterday > < forecast > < weather > < date >12日星期六</ date > < high >高温 35℃</ high > < low >低温 26℃</ low > < day > < type >多云</ type > < fengxiang >西南风</ fengxiang > < fengli > <![CDATA[ 3-4级 ]]> </ fengli > </ day > < night > < type >多云</ type > < fengxiang >西南风</ fengxiang > < fengli > <![CDATA[ <3级 ]]> </ fengli > </ night > </ weather > < weather > < date >13日星期天</ date > < high >高温 35℃</ high > < low >低温 26℃</ low > < day > < type >多云</ type > < fengxiang >南风</ fengxiang > < fengli > <![CDATA[ 3-4级 ]]> </ fengli > </ day > < night > < type >多云</ type > < fengxiang >南风</ fengxiang > < fengli > <![CDATA[ <3级 ]]> </ fengli > </ night > </ weather > < weather > < date >14日星期一</ date > < high >高温 33℃</ high > < low >低温 26℃</ low > < day > < type >阵雨</ type > < fengxiang >南风</ fengxiang > < fengli > <![CDATA[ <3级 ]]> </ fengli > </ day > < night > < type >多云</ type > < fengxiang >南风</ fengxiang > < fengli > <![CDATA[ <3级 ]]> </ fengli > </ night > </ weather > < weather > < date >15日星期二</ date > < high >高温 34℃</ high > < low >低温 26℃</ low > < day > < type >阵雨</ type > < fengxiang >南风</ fengxiang > < fengli > <![CDATA[ <3级 ]]> </ fengli > </ day > < night > < type >多云</ type > < fengxiang >南风</ fengxiang > < fengli > <![CDATA[ <3级 ]]> </ fengli > </ night > </ weather > < weather > < date >16日星期三</ date > < high >高温 35℃</ high > < low >低温 26℃</ low > < day > < type >多云</ type > < fengxiang >南风</ fengxiang > < fengli > <![CDATA[ <3级 ]]> </ fengli > </ day > < night > < type >多云</ type > < fengxiang >南风</ fengxiang > < fengli > <![CDATA[ <3级 ]]> </ fengli > </ night > </ weather > </ forecast > < zhishus > < zhishu > < name >晨练指数</ name > < value >较适宜</ value > < detail >早晨气象条件较适宜晨练,但风力稍大,晨练时会感觉有点凉,晨练时着装不要过于单薄,选择避风的地点。</ detail > </ zhishu > < zhishu > < name >舒适度</ name > < value >较不舒适</ value > < detail >白天天气多云,同时会感到有些热,不很舒适。</ detail > </ zhishu > < zhishu > < name >穿衣指数</ name > < value >炎热</ value > < detail >天气炎热,建议着短衫、短裙、短裤、薄型T恤衫等清凉夏季服装。</ detail > </ zhishu > < zhishu > < name >感冒指数</ name > < value >少发</ value > < detail >各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。</ detail > </ zhishu > < zhishu > < name >晾晒指数</ name > < value >适宜</ value > < detail >天气不错,适宜晾晒。赶紧把久未见阳光的衣物搬出来吸收一下太阳的味道吧!</ detail > </ zhishu > < zhishu > < name >旅游指数</ name > < value >一般</ value > < detail >天气较好,温度高,让人感觉热,幸好风比较大,能缓解炎热的天气。外出旅游请注意防暑降温和防晒。</ detail > </ zhishu > < zhishu > < name >紫外线强度</ name > < value >中等</ value > < detail >属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。</ detail > </ zhishu > < zhishu > < name >洗车指数</ name > < value >较适宜</ value > < detail >较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。</ detail > </ zhishu > < zhishu > < name >运动指数</ name > < value >较适宜</ value > < detail >天气较好,但风力较大,推荐您进行室内运动,若在户外运动请注意防风。</ detail > </ zhishu > < zhishu > < name >约会指数</ name > < value >不适宜</ value > < detail >风卷起热浪袭来,外出约会可能会因此败兴而归,最好在凉爽的室内约会。</ detail > </ zhishu > < zhishu > < name >雨伞指数</ name > < value >不带伞</ value > < detail >天气较好,不会降水,因此您可放心出门,无须带雨伞。</ detail > </ zhishu > </ zhishus > </ resp > <!-- 10.10.156.163(10.10.156.163):39822 ; 10.10.162.42:8080 --> |
参考资料
我们日常使用手机了解天气,而这些天气信息是从哪来的呢?是服务商提供给手机软件的。而提供时需要用到API接口。接口使用起来超级方便,仅需要以下短短几步,就能够实现了。那天气api怎么用呢?这篇文章就来带你探讨一下如何使用天气API。
1.创建应用
首先找到一个可用的天气API,推荐大家去聚合数据里里找,有免费使用的。开始正式开发之前,你需要先创建一个应用和URL,这个URL是你获取天气数据的认证信息。
2.申请API Key
通常的互联网开放平台API通过URL的形式提供给开发者。后者在自己的应用程序中访问该URL并附带上所需要的参数,便可获取所需要的数据。URL就是能找到指定数据的地址。
3.得到天气信息
通过API的URL可以得到json格式的数据。将URL写到自己的写的demo中,将数据接入自己demo中的组件,就可以在运行demo时显示数据了。接下来就可以尽情自己的开发了。
至此,恭喜你,你已经学会应答天气api怎么用来获得天气数据了。如果你感兴趣,可以尝试去开发做一个小项目,会对API更加熟悉。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~