|
@@ -0,0 +1,54 @@
|
|
|
|
+package org.springblade.common.utils;
|
|
|
|
+
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
+
|
|
|
|
+import java.io.BufferedReader;
|
|
|
|
+import java.io.IOException;
|
|
|
|
+import java.io.InputStreamReader;
|
|
|
|
+import java.net.URL;
|
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.Map;
|
|
|
|
+
|
|
|
|
+@Slf4j
|
|
|
|
+public class BaiduApiUtil {
|
|
|
|
+
|
|
|
|
+ //百度服务端AK
|
|
|
|
+ private static final String API_AK = "S2KnLxdhNEgwWNTdFdR7CwMkdRqNIHib";
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据区域代码获取当天天气
|
|
|
|
+ * @param districtId 区域代码
|
|
|
|
+ */
|
|
|
|
+ public static Map<String, String> getTodayWeather(String districtId){
|
|
|
|
+ Map<String, String> map = new HashMap<>();
|
|
|
|
+ String getUrl = "http://api.map.baidu.com/weather/v1/?data_type=all&district_id=" + districtId + "&ak=" + API_AK;
|
|
|
|
+ try{
|
|
|
|
+ URL url = new URL(getUrl);
|
|
|
|
+ BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8));
|
|
|
|
+ String res;
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
+ while ((res = in.readLine()) != null) {
|
|
|
|
+ sb.append(res.trim());
|
|
|
|
+ }
|
|
|
|
+ log.info("获取当天天气 ======= sb.toString():" + sb.toString());
|
|
|
|
+ JSONObject jsonData = JSONObject.parseObject(sb.toString());
|
|
|
|
+ JSONObject result = (JSONObject) jsonData.get("result");
|
|
|
|
+ JSONObject now = (JSONObject) result.get("now");
|
|
|
|
+ JSONArray forecasts = (JSONArray) result.get("forecasts");
|
|
|
|
+ JSONObject forecast = (JSONObject)forecasts.get(0);
|
|
|
|
+ map.put("temp", now.get("temp").toString());
|
|
|
|
+ map.put("weather", forecast.get("text_day").toString());
|
|
|
|
+ map.put("high", forecast.get("high").toString());
|
|
|
|
+ map.put("low", forecast.get("low").toString());
|
|
|
|
+ map.put("windLevel",now.get("wind_class").toString());
|
|
|
|
+ }catch (IOException e){
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|