免费天气API接口

免费天气API接口

package com.panxg.api.weather.two;

import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.HashMap;


/**
 * @author panxg
 * @date 2021年06月23日 15:49
 */
@Service
@Slf4j
public class SimpleWeather {

    /**天气情况查询接口地址*/
    public static final String API_QUERY_URL = "http://apis.juhe.cn/simpleWeather/query";
    /**根据城市查询生活指数*/
    public static final String API_LIFE_URL = "http://apis.juhe.cn/simpleWeather/life";
    /**天气种类列表*/
    public static final String API_WIDS_URL = "http://apis.juhe.cn/simpleWeather/wids";
    /**支持城市列表*/
    public static final String API_CITYLIST_URL = "http://apis.juhe.cn/simpleWeather/cityList";

    /**接口请求Key*/
    public static final String API_KEY = "2d7652bf150fc43f87e854f5eff2c488";

    public String querySimpleWeatherCityList() {
        String result = "";
        HashMap<String, Object> headers = new HashMap<>();
        headers.put("key", API_KEY);
        String body = HttpUtil.createGet(API_CITYLIST_URL).form(headers).execute().body();
        JSONObject jsonObject = JSONUtil.parseObj(body);
        if ("0".equals(jsonObject.getStr("error_code"))) {
            result = jsonObject.getStr("result");
            log.info("查询成功!"+result);
        } else {
            log.info("查询失败!"+jsonObject);
            result = jsonObject.toString();
        }
        return result;
    }
    public String querySimpleWeatherWids() {
        String result = "";
        HashMap<String, Object> headers = new HashMap<>();
        headers.put("key", API_KEY);
        String body = HttpUtil.createGet(API_WIDS_URL).form(headers).execute().body();
        JSONObject jsonObject = JSONUtil.parseObj(body);
        if ("0".equals(jsonObject.getStr("error_code"))) {
            result = jsonObject.getStr("result");
            log.info("查询成功!"+result);
        } else {
            log.info("查询失败!"+jsonObject);
            result = jsonObject.toString();
        }
        return result;
    }

    public String querySimpleWeatherLife(String cityName) {
        String result = "";
        HashMap<String, Object> headers = new HashMap<>();
        headers.put("city", cityName);
        headers.put("key", API_KEY);
        String body = HttpUtil.createGet(API_LIFE_URL).form(headers).execute().body();
        JSONObject jsonObject = JSONUtil.parseObj(body);
        if ("0".equals(jsonObject.getStr("error_code"))) {
            result = jsonObject.getStr("result");
            log.info("查询成功!"+result);
        } else {
            log.info("查询失败!"+jsonObject);
            result = jsonObject.toString();
        }
        return result;
    }

    /**
     *  根据城市查询天气
     * @param cityName 城市
     * @return com.panxg.weather.two.ResultEntity
     * @Author panxg
     * @Date 2021/6/23 16:51
     **/
    public ResultEntity querySimpleWeatherQuery(String cityName) {
        ResultEntity resultEntity=new ResultEntity();
        HashMap<String, Object> headers = new HashMap<>();
        headers.put("city", cityName);
        headers.put("key", API_KEY);
        String body = HttpUtil.createGet(API_QUERY_URL).form(headers).execute().body();
        JSONObject jsonObject = JSONUtil.parseObj(body);
        log.info("查询成功!" + jsonObject);
        if ("0".equals(jsonObject.getStr("error_code"))) {
            log.info("查询成功!");
            Object result = jsonObject.get("result");
            resultEntity = JSONUtil.parseObj(result).toBean(ResultEntity.class);
        } else {
            log.info("查询失败!"+jsonObject);
        }
        return resultEntity;
    }



}

package com.panxg.api.weather.two;

import lombok.Data;

/**
 * @author panxg
 * @date 2021年06月23日 16:37
 */
@Data
public class FutureEntity {
    private String date;
    private String temperature;
    private String weather;
    private WidEntity wid;
    private String direct;
}


package com.panxg.api.weather.two;

import lombok.Data;

/**
 * @author panxg
 * @date 2021年06月23日 16:01
 */
@Data
public class RealtimeEntity {
    /**城市*/
    private String city;
    /**天气*/
    private String info;
    /**温度*/
    private String temperature;
    /**湿度*/
    private String humidity;
    /**风向*/
    private String direct;
    /**风力*/
    private String power;
    /**空气质量*/
    private String aqi;
}

package com.panxg.api.weather.two;

import lombok.Data;

import java.util.List;

/**
 * @author panxg
 * @date 2021年06月23日 16:36
 */
@Data
public class ResultEntity {
    private String city;
    private RealtimeEntity realtimeEntity;
    private List<FutureEntity> future;
}

package com.panxg.api.weather.two;

import lombok.Data;

/**
 * @author panxg
 * @date 2021年06月23日 16:38
 */
@Data
public class WidEntity {
    private String day;
    private String night;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,天气预报API免费接口的使用步骤如下: 1. 首先,需要免费获取历史天气查询API的AppKey。\[2\] 2. 将获取到的AppKey替换示例代码中的"appKey"。\[3\] 3. 执行脚本,即可进行天气预报的查询。\[3\] 示例代码中的`ApiRequest`类是一个封装了天气查询功能的类,其中的`verify`方法用于发送请求并获取天气信息。你可以根据自己的需求进行开发和调整。\[3\] 需要注意的是,示例代码中的`city_id`参数用于指定城市的ID,`weather_date`参数用于指定查询的日期。日期的格式为"YYYY-MM-DD",且不能大于等于今日日期。\[3\] 以上是关于天气预报API免费接口的使用方法。希望对你有帮助! #### 引用[.reference_title] - *1* [免费天气预报接口](https://blog.csdn.net/weichangIT/article/details/80255206)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [免费天气预报查询 API、历史天气查询 API 接口使用示例【源码可用】](https://blog.csdn.net/JAVASOFT008/article/details/130812391)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值