背着八股文 突发奇想,没事写着玩。
接下来正文开始
高德账号
注册高德账号,开通应用此处省略,如果文章评论收藏多,我会补齐
请求到高德需要的参数(官网)
官方参数和返回参数地址:
天气查询-基础 API 文档-开发指南-Web服务 API | 高德地图API
导入依赖
HTTPClient 发请求依赖
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
json格式转换依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.5<version>
</dependency>
返回结果实体类
// 对于初学者来说 下面是2个类 复制的时候要分开
@Data // 这个没有依赖,要手动创建 get set 方法
public class WeatherResponse {
private String status;
private String count;
private String info;
private String infocode;
private List<LiveWeather> lives;
}
@Data
public class LiveWeather {
private String province;
private String city;
private String adcode;
private String weather;
private String temperature;
private String winddirection;
private String windpower;
private String humidity;
private String reporttime;
private String temperature_float;
private String humidity_float;
}
工具类(简易版)
参数要替换
key: 高德申请的key
city:城市编码
这个城市编码可以通过高德获取:
package com.sky.utils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
public class WeatherQueryUtil {
private static final String GAODE_WEATHER_API_URL = "https://restapi.amap.com/v3/weather/weatherInfo?city= 这个你自己替换城市编码 &key= 你自己的KEY";
/**
* 查询天气信息
*
* 通过高德天气API获取当前天气数据 本方法使用HttpClient发送HTTP GET请求,并解析响应结果
*
* @return 天气信息的字符串表示,如果请求失败则返回null
*/
public static String queryWeather() {
// 创建默认的HttpClient实例
HttpClient httpClient = HttpClients.createDefault();
// 创建GET请求对象,指向高德天气API的URL
HttpGet httpGet = new HttpGet(GAODE_WEATHER_API_URL);
try {
// 执行HTTP GET请求并获得响应
HttpResponse response = httpClient.execute(httpGet);
// 获取响应实体
HttpEntity entity = response.getEntity();
// 将响应实体转换为字符串并返回
return EntityUtils.toString(entity);
} catch (IOException e) {
// 捕获并打印异常堆栈信息
e.printStackTrace();
// 请求失败,返回null
return null;
}
}
}
测试调用
package com.sky.controller.demo;
import com.alibaba.fastjson.JSONObject;
import com.sky.dto.demo.WeatherRequestDTO;
import com.sky.entity.demo.WeatherResponse;
import com.sky.utils.HttpClientUtil;
import com.sky.utils.WeatherQueryUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
@RestController
@RequestMapping
@Slf4j
/**
* demo
*/
public class WeatherController {
@GetMapping("weather")
public WeatherResponse getWeather() {
String s = WeatherQueryUtil.queryWeather();
log.info("查询天气信息:{}",s);
WeatherResponse jsonObject = JSONObject.parseObject(s, WeatherResponse.class);
return jsonObject;
}
}
结语
如果对您有帮助,请您关注点赞收藏,如果以上教程您无法实现,请打在评论区,看到以后会帮您解答互动!共同成长!
好了 ,回归正题!继续背八股文和场景题!我要上大厂!加油奥力给!