介绍
本文将详细介绍如何使用免费天气预报API接口,该接口通过地址查询获取指定地区当日天气信息。该服务由接口盒子提供,支持免费调用,但需要使用注册获取的用户ID和KEY进行身份验证。
接口特点
- 数据来源:中国气象局官方数据
- 免费使用:无需付费即可调用
- 简单易用:仅需省份和地点即可查询
- JSON格式:返回数据为JSON格式,便于解析
- 支持方式:支持GET和POST两种请求方式
API接口详情
请求地址
https://cn.apihz.cn/api/tianqi/tqyb.php
请求方式
GET或POST
请求参数
参数名称 |
参数 |
必填 |
说明 |
用户ID |
id |
是 |
用户中心的数字ID (例: id=10000000) |
用户KEY |
key |
是 |
用户中心通讯秘钥 (例: key=15he5h15ty854j5sr152hs2) |
省份名称 |
sheng |
是 |
要查询的省份名称 (例: sheng=北京, sheng=四川省) |
地点 |
place |
是 |
要查询的城市或区县级名称 (例: place=大兴区, place=绵阳) |
注意:如果查询失败,可以尝试去掉地名后缀(如"省"、"市"、"区"等)
返回参数
参数名称 |
参数 |
说明 |
状态码 |
code |
200表示成功,400表示错误 |
消息内容 |
msg |
状态码为400时的错误信息提示 |
降水量 |
precipitation |
降水量 |
温度 |
temperature |
温度 |
气压 |
pressure |
气压 |
湿度 |
humidity |
湿度 |
风向 |
windDirection |
风向 |
风向度 |
windDirectionDegree |
风向度 |
风速 |
windSpeed |
风速 |
风速描述 |
windScale |
风速描述 |
地区 |
place |
查询到的地区 |
当日天气1 |
weather1 |
当日主要天气 (如"晴"在"晴转多云"中) |
当日天气2 |
weather2 |
当日次要天气 (如"多云"在"晴转多云"中) |
调用示例
GET请求示例
复制https://cn.apihz.cn/api/tianqi/tqyb.php?id=88888888&key=88888888&sheng=四川&place=绵阳
复制
成功返回示例
json复制{ "precipitation": 0, "temperature": 25.9, "pressure": 952, "humidity": 55, "windDirection": "西北风", "windDirectionDegree": 333, "windSpeed": 1.4, "windScale": "微风", "code": 200, "place": "中国, 四川, 绵阳", "weather1": "晴", "weather2": "多云"}
复制
错误返回示例
json复制{ "code": 400, "msg": "通讯秘钥错误。"}
复制
编程语言调用示例
PHP调用示例
php复制<?php// 用户ID和KEY(替换为自己的)$id = '10000000';$key = 'your_key_here';$sheng = '四川';$place = '绵阳';// 构造请求URL$url = "https://cn.apihz.cn/api/tianqi/tqyb.php?id={$id}&key={$key}&sheng={$sheng}&place={$place}";// 发送GET请求$response = file_get_contents($url);// 解析JSON响应$data = json_decode($response, true);// 检查状态码if ($data['code'] == 200) { echo "地区: " . $data['place'] . "\n"; echo "天气: " . $data['weather1'] . "转" . $data['weather2'] . "\n"; echo "温度: " . $data['temperature'] . "℃\n"; echo "湿度: " . $data['humidity'] . "%\n"; echo "风向: " . $data['windDirection'] . ",风速: " . $data['windScale'] . "(" . $data['windSpeed'] . "m/s)\n";} else { echo "请求失败: " . $data['msg'] . "\n";}?>
复制
Python调用示例
python运行复制import requests # 用户ID和KEY(替换为自己的) id = '10000000'key = 'your_key_here'sheng = '四川'place = '绵阳' # 构造请求URLurl = f'https://cn.apihz.cn/api/tianqi/tqyb.php?id={id}&key={key}&sheng={sheng}&place={place}' # 发送GET请求 response = requests.get(url)data = response.json() # 检查状态码if data['code'] == 200: print(f"地区: {data['place']}") print(f"天气: {data['weather1']}转{data['weather2']}") print(f"温度: {data['temperature']}℃") print(f"湿度: {data['humidity']}%") print(f"风向: {data['windDirection']},风速: {data['windScale']}({data['windSpeed']}m/s)")else: print(f"请求失败: {data['msg']}")
复制
使用注意事项
- 注册获取ID和KEY:必须使用自己在接口盒子(http://www.apihz.cn)注册后获得的用户ID和KEY,避免使用公共示例的ID和KEY(如88888888),以免受到频次限制。
- 地名处理:
- 如果查询失败,尝试去掉省份或地点的后缀(如"省"、"市"、"区"、"县"等)
- 例如:使用"北京"代替"北京市",使用"四川"代替"四川省",使用"高新"代替"高新区"
- 频次限制:
- 公共ID和KEY共享每分钟调用频次限制
- 注册获取自己的ID和KEY可独享调用频次
- 每日调用无上限
- 数据更新:
- 数据来源于中国气象局官方,实时性有保障
- 建议合理设置调用间隔,避免频繁请求
- 错误处理:
- 务必检查返回的code字段
- 当code为400时,根据msg提示调整请求参数
应用场景
该API适用于各种需要天气预报信息的应用:
- 天气预报类网站或小程序
- 出行规划类应用
- 农业监测系统
- 智能家居系统
- 物联网设备
- 地理位置服务
通过本文介绍,您应该已经了解了如何使用中国气象局天气预报API接口获取指定地区的天气信息。无论是PHP还是Python开发者,都可以轻松集成该API到自己的应用中,为用户提供准确的天气预报服务。