生活指数
其他 官方文档
根据城市信息获取其生活指数
基本说明:
接口地址:https://devapi.qweather.com/v7/indices/1d
返回格式:json
请求方式:get
请求示例:https://devapi.qweather.com/v7/indices/1d?key=key
请求参数说明:
名称 类型 必填 说明
location string 必填 需要查询的城市或地区,可输入以下值:1. 城市ID:城市列表2. 经纬度格式:经度,纬度(经度在前纬度在后,英文,分隔,十进制格式,北纬东经为正,南纬西经为负3. 城市名称,支持中英文和汉语拼音4. 城市名称,上级城市 或 省 或 国家,英文,分隔,此方式可以在重名的情况下只获取想要的地区的天气数据5. IP6. 根据请求自动判断,根据用户的请求获取IP,通过 IP 定位并获取城市数据
key string 必填 用户认证key 扫码关注公众号
lang string 选填 多语言,可以不使用该参数,默认为简体中文,海外城市默认为英文
unit string 选填 单位选择,公制(m)或英制(i),默认为公制单位
返回参数说明:
名称 类型 说明
- - -
JSON返回示例:
{
	"HeWeather6": [{
		"basic": {
			"cid": "CN101010100",
			"location": "北京",
			"parent_city": "北京",
			"admin_area": "北京",
			"cnty": "中国",
			"lat": "39.90498734",
			"lon": "116.4052887",
			"tz": "+8.00"
		},
		"update": {
			"loc": "2020-01-06 16:55",
			"utc": "2020-01-06 08:55"
		},
		"status": "ok",
		"lifestyle": [{
			"type": "comf",
			"brf": "较不舒适",
			"txt": "白天天气晴好,但仍会使您感觉偏冷,不很舒适,请注意适时添加衣物,以防感冒。"
		}, {
			"type": "drsg",
			"brf": "冷",
			"txt": "天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。"
		}, {
			"type": "flu",
			"brf": "易发",
			"txt": "昼夜温差很大,易发生感冒,请注意适当增减衣服,加强自我防护避免感冒。"
		}, {
			"type": "sport",
			"brf": "较不宜",
			"txt": "天气较好,但考虑天气寒冷,推荐您进行室内运动,户外运动时请注意保暖并做好准备活动。"
		}, {
			"type": "trav",
			"brf": "适宜",
			"txt": "天气较好,气温稍低,会感觉稍微有点凉,不过也是个好天气哦。适宜旅游,可不要错过机会呦!"
		}, {
			"type": "uv",
			"brf": "中等",
			"txt": "属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。"
		}, {
			"type": "cw",
			"brf": "适宜",
			"txt": "适宜洗车,未来持续两天无雨天气较好,适合擦洗汽车,蓝天白云、风和日丽将伴您的车子连日洁净。"
		}, {
			"type": "air",
			"brf": "中",
			"txt": "气象条件对空气污染物稀释、扩散和清除无明显影响。"
		}]
	}]
}
服务级错误码参照
错误码 说明
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
 */
//----------------------------------
// 生活指数 调用类
//----------------------------------
class freeApi{
    private $apiUrl;
    private $appKey;

    public function __construct($appKey){
        $this->appKey = $appKey;
        $this->apiUrl = 'https://free-api.heweather.net/s6/weather/lifestyle';
    }
    /**
     * 获取结果
     * @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/lifestyle"
	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))
}