接口地址:https://devapi.qweather.com/v7/weather/3d |
---|
返回格式:json |
请求方式:get |
请求示例:https://devapi.qweather.com/v7/weather/3d?key=key |
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
location | string | 必填 | 需要查询的城市或地区,可输入以下值:1. 城市ID:城市列表2. 经纬度格式:经度,纬度(经度在前纬度在后,英文,分隔,十进制格式,北纬东经为正,南纬西经为负3. 城市名称,支持中英文和汉语拼音4. 城市名称,上级城市 或 省 或 国家,英文,分隔,此方式可以在重名的情况下只获取想要的地区的天气数据5. IP6. 根据请求自动判断,根据用户的请求获取IP,通过 IP 定位并获取城市数据 |
key | string | 必填 | 用户认证key 扫码关注公众号 |
lang | string | 选填 | 多语言,可以不使用该参数,默认为简体中文,海外城市默认为英文 |
unit | string | 选填 | 单位选择,公制(m)或英制(i),默认为公制单位 |
名称 | 类型 | 说明 |
---|---|---|
- | - | - |
{
"HeWeather6": [{
"basic": {
"cid": "CN101010100",
"location": "北京",
"parent_city": "北京",
"admin_area": "北京",
"cnty": "中国",
"lat": "39.90498734",
"lon": "116.4052887",
"tz": "+8.00"
},
"update": {
"loc": "2020-01-08 16:56",
"utc": "2020-01-08 08:56"
},
"status": "ok",
"daily_forecast": [{
"cond_code_d": "100",
"cond_code_n": "100",
"cond_txt_d": "晴",
"cond_txt_n": "晴",
"date": "2020-01-08",
"hum": "39",
"mr": "14:50",
"ms": "04:49",
"pcpn": "0.0",
"pop": "0",
"pres": "1022",
"sr": "07:35",
"ss": "17:07",
"tmp_max": "5",
"tmp_min": "-7",
"uv_index": "5",
"vis": "25",
"wind_deg": "358",
"wind_dir": "北风",
"wind_sc": "1-2",
"wind_spd": "2"
}, {
"cond_code_d": "100",
"cond_code_n": "101",
"cond_txt_d": "晴",
"cond_txt_n": "多云",
"date": "2020-01-09",
"hum": "43",
"mr": "15:37",
"ms": "05:54",
"pcpn": "0.0",
"pop": "0",
"pres": "1019",
"sr": "07:35",
"ss": "17:08",
"tmp_max": "4",
"tmp_min": "-6",
"uv_index": "3",
"vis": "25",
"wind_deg": "186",
"wind_dir": "南风",
"wind_sc": "1-2",
"wind_spd": "11"
}, {
"cond_code_d": "101",
"cond_code_n": "101",
"cond_txt_d": "多云",
"cond_txt_n": "多云",
"date": "2020-01-10",
"hum": "35",
"mr": "16:33",
"ms": "06:56",
"pcpn": "0.0",
"pop": "1",
"pres": "1020",
"sr": "07:35",
"ss": "17:09",
"tmp_max": "6",
"tmp_min": "-4",
"uv_index": "2",
"vis": "25",
"wind_deg": "6",
"wind_dir": "北风",
"wind_sc": "1-2",
"wind_spd": "1"
}]
}]
}
错误码 | 说明 |
---|---|
invalid key | 无效的key,请检查你的key是否输入以及是否输入有误 |
invalid key type | 你输入的key不适用于当前获取数据的方式,即SDK的KEY不能用于Web API或通过接口直接访问,反之亦然。 |
invalid param | 无效的参数,请检查你传递的参数是否正确、完整 |
bad bind | 错误的绑定,例如绑定的package name、bundle id或IP地址不一致的时候 |
no data for this location | 该城市/地区没有你所请求的数据 |
no more requests | 超过访问次数,需要等到当月最后一天24点(免费用户为当天24点)后进行访问次数的重置或升级你的访问量 |
no balance | 没有余额,你的按量计费产品由于余额不足或欠费而不能访问,请尽快充值 |
too fast | 超过限定的QPM,请参考QPM说明 |
dead | 无响应或超时 |
unknown location | 没有你查询的这个地区,或者地区名称错误 |
permission denied | 无访问权限,你没有购买你所访问的这部分服务 |
sign error | 签名错误,请参考签名算法 |
<?php
/**
* Created by PhpStorm.
* User: FZS
* Time: 2020/01/06 22:16
*/
//----------------------------------
// 3天天气预报 调用类
//----------------------------------
class freeApi{
private $apiUrl;
private $appKey;
public function __construct($appKey){
$this->appKey = $appKey;
$this->apiUrl = 'https://free-api.heweather.net/s6/weather/forecast';
}
/**
* 获取结果
* @return array
*/
public function getResult(){
$paras = [
'key' => $this->appKey,
'location' => 'beijing',
];
return $this->freeApiCurl($this->apiUrl,$paras);
}
/**
* 请求接口返回内容
* @param string $url [请求的URL地址]
* @param string $params [请求的参数]
* @param int $ipost [是否采用POST形式]
* @return string
*/
public function freeApiCurl($url,$params=false){
$headers = array('Content-Type: application/x-www-form-urlencoded');
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params)); // Post提交的数据包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
echo 'Errno'.curl_error($curl);//捕抓异常
}
curl_close($curl); // 关闭CURL会话
return $result;
}
}
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
const (
APIURL = "https://free-api.heweather.net/s6/weather/forecast"
APIKEY = "your key"
)
func main() {
queryUrl := fmt.Sprintf("%s?key=%s&location=beijing",APIURL,APIKEY)
resp, err := http.Get(queryUrl)
if err != nil {
log.Println(err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}