免费天气API接口
package com.panxg.api.weather.one;
import java.util.HashMap;
public class WeatherConfig {
public static final String URL = "https://tianqiapi.com/api";
public static final String APPID = "63324528";
public static final String APPSECRET = "giWz4pEF";
public static final String VERSION = "v6";
public static HashMap<String, Object> getConfigMap(){
HashMap<String, Object> headers = new HashMap<>(7);
headers.put("version", WeatherConfig.VERSION);
headers.put("appid", WeatherConfig.APPID);
headers.put("appsecret", WeatherConfig.APPSECRET);
return headers;
}
}
package com.panxg.api.weather.one;
import lombok.Data;
@Data
public class WeatherEntity {
private String cityid;
private String date;
private String week;
private String update_time;
private String city;
private String cityEn;
private String country;
private String countryEn;
private String wea;
private String wea_img;
private String tem;
private String tem1;
private String tem2;
private String win;
private String win_speed;
private String win_meter;
private String humidity;
private String visibility;
private String pressure;
private String air;
private String air_pm25;
private String air_level;
private String air_tips;
private AlarmEntity alarm;
}
@Data
class AlarmEntity{
private String alarm_type;
private String alarm_level;
private String alarm_content;
}
package com.panxg.api.weather.one;
import cn.hutool.core.text.UnicodeUtil;
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;
@Service
@Slf4j
public class WeatherService {
public WeatherEntity queryWeather(String cityid,String city,String ip) {
HashMap<String, Object> headers = WeatherConfig.getConfigMap();
headers.put("cityid", cityid);
headers.put("city", city);
headers.put("ip", ip);
String unicodeBody = HttpUtil.createGet(WeatherConfig.URL).form(headers).execute().body();
String strBody = UnicodeUtil.toString(unicodeBody);
JSONObject jsonObject = JSONUtil.parseObj(strBody);
return jsonObject.toBean(WeatherEntity.class);
}
}