欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Springboot實現(xiàn)獲取某個城市當(dāng)天的天氣預(yù)報

 更新時間:2024年04月20日 17:24:42   作者:星空下夜貓子  
這篇文章主要為大家詳細(xì)介紹了使用Springboot實現(xiàn)獲取某個城市當(dāng)天的天氣預(yù)報的相關(guān)知識,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

獲取天氣信息作者是通過高德開放平臺來實現(xiàn)的。

1、在該平臺注冊個賬號

如已經(jīng)注冊,直接登錄即可。

2、創(chuàng)建應(yīng)用

創(chuàng)建成功后獲取到key值。(注意該值會經(jīng)常用到,且可以共用保存好)

3、進入開發(fā)文檔選擇天氣查詢

開發(fā)文檔

下面按照說明使用即可。

接下來上代碼。(注意功能接受的是JSON格式的)

4、pom.xml文件的引用

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.80</version>
        </dependency>

5、配置文件

6、實體類

package com.zjh.weixin.Model;


import lombok.Data;

import java.util.List;

/**
 * @Author: zjh
 * @Date: 2022/9/19 11:03
 * @Description: 天氣總實體
 * @Version: v1.0
 */
@Data
public class WeatherModel {
    private String status;
    private String count;
    private String nfo;
    private String infocode;
    private List<LivesModel> lives;
}

該實體為總實體(后續(xù)添加功能時,在總實體添加引用,在創(chuàng)建子實體)

package com.zjh.weixin.Model;

import lombok.Data;

/**
 * @Author zjh
 * @Date 2022/9/19 1053
 * @Description 天氣實體類
 * @Version v1.0
 */
@Data
public class LivesModel {
    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 ;
}

該類為子實體

7、根據(jù)路徑獲取信息

package com.zjh.weixin.Util;

import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.web.client.RestTemplate;
import com.alibaba.fastjson.JSON;
import java.util.Map;

/**
 * @Author: zjh
 * @Date: 2022/9/19 10:29
 * @Description: 后端根據(jù)路徑發(fā)起請求
 * @Version: v1.0
 */
public class HttpsUtil {
    /**
     * get請求
     */
    public static String get(String url){
        HttpHeaders headers = new HttpHeaders();
        MediaType mediaType = MediaType.parseMediaType("application/json; charset=UTF-8");
        headers.setContentType(mediaType);
        RestTemplate restTemplate = new RestTemplate();
        String result = restTemplate.getForObject(url, String.class);
        return result;
    }
}

8、調(diào)用方法

 public static void main(String[] args) {
        String url = "https://restapi.amap.com/v3/weather/weatherInfo?city=411400&key=b2f301************077d21";
        String s = HttpsUtil.get(url);
        System.out.println(s);
        JSONObject object = JSONObject.parseObject(s);
        WeatherModel jb = (WeatherModel)JSONObject.toJavaObject(object, WeatherModel.class);
        System.out.println(jb);
        LivesModel livesModel = jb.getLives().get(0);
        System.out.println(livesModel);
        int c =Integer.valueOf(livesModel.getTemperature());
        SimpleDateFormat dateFm = new SimpleDateFormat("EEEE");
        String currSun = dateFm.format(new Date());
        String r = null;
        if (c<=26 && c>=18){
            r="今天溫度適宜";
        }else if (c>26){
            r="今天溫度較高,注意防曬";
        }else if(c<18){
            r="今天溫度較低,注意保暖";
        }
        String zong = "日期: "+livesModel.getReporttime()+"  "+currSun+"\n"+
                "所在城市: "+livesModel.getCity()+"\n"+
                "天氣: " + livesModel.getWeather()+"\n"+
                "溫度: "+ livesModel.getTemperature()+"  "+r+"\n"+
                "風(fēng)向: "+ livesModel.getWinddirection()+"風(fēng)"+"\n"+
                "風(fēng)級: "+livesModel.getWindpower();
        System.out.println(zong);
        
    }

成功返回數(shù)據(jù)

9、項目優(yōu)化

高德開放平臺根據(jù)地址獲取城市編碼

public static String getWeather(String adcode,String key){
        String url = "https://restapi.amap.com/v3/weather/weatherInfo?city="+adcode+"&key="+key;
        String s = HttpsUtil.get(url);
        JSONObject object = JSONObject.parseObject(s);

        WeatherModel jb = (WeatherModel)JSONObject.toJavaObject(object, WeatherModel.class);
        LivesModel livesModel = jb.getLives().get(0);
        int c =Integer.valueOf(livesModel.getTemperature());
        SimpleDateFormat dateFm = new SimpleDateFormat("EEEE");
        String currSun = dateFm.format(new Date());
        String r = null;
        if (c<=26 && c>=18){
            r="今天溫度適宜";
        }else if (c>26){
            r="今天溫度較高,注意防曬";
        }else if(c<18){
            r="今天溫度較低,注意保暖";
        }
        String zong = "日期: "+livesModel.getReporttime()+"  "+currSun+"\n"+
                "所在城市: "+livesModel.getCity()+"\n"+
                "天氣: " + livesModel.getWeather()+"\n"+
                "溫度: "+ livesModel.getTemperature()+"  "+r+"\n"+
                "風(fēng)向: "+ livesModel.getWinddirection()+"風(fēng)"+"\n"+
                "風(fēng)級: "+livesModel.getWindpower();
        return zong;
    }
    private static String getCityCode(String adress,String key){
        String url = "https://restapi.amap.com/v3/geocode/geo?address="+adress+"&key="+key;
        String s = HttpsUtil.get(url);
        JSONObject object = JSONObject.parseObject(s);
        System.out.println(object);
        JSONArray array = (JSONArray) object.get("geocodes");
        JSONObject arrayObject = (JSONObject) array.get(0);
        String adcode = arrayObject.get("adcode").toString();
        return adcode;
    }

    public static void main(String[] args) {

        System.out.println(getCityCode("河南省鄭州市","b2f301c36******77d21"));
        System.out.println(getWeather(getCityCode("河南省鄭州市","b2f3*****7d21"),"b2f3*******7d21"));
    }

注:該功能雖說是springboot項目,但是缺失許多東西,不太完善(其主要原因是因為作者發(fā)現(xiàn)通過java編程實現(xiàn)通過用戶賬號發(fā)送給該用戶的好友信息,只能通過Robot的自動測試功能實現(xiàn)微信發(fā)送消息。該方法缺點太大,不太方便,暫時未找到其他更好的方法

以上就是使用Springboot實現(xiàn)獲取某個城市當(dāng)天的天氣預(yù)報的詳細(xì)內(nèi)容,更多關(guān)于Springboot獲取天氣預(yù)報的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Springboot實現(xiàn)圖片上傳功能的示例代碼

    Springboot實現(xiàn)圖片上傳功能的示例代碼

    本篇文章主要介紹了SpringBoot如何實現(xiàn)圖片上傳功能,文中通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-09-09
  • 使用.NET Core3.0創(chuàng)建一個Windows服務(wù)的方法

    使用.NET Core3.0創(chuàng)建一個Windows服務(wù)的方法

    這篇文章主要介紹了使用.NET Core3.0創(chuàng)建一個Windows服務(wù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • Java結(jié)合Vue項目打包并進行服務(wù)器部署

    Java結(jié)合Vue項目打包并進行服務(wù)器部署

    本文主要介紹了Java結(jié)合Vue項目打包并進行服務(wù)器部署,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Java中的Redis是什么意思

    Java中的Redis是什么意思

    Redis是一個非常強大的工具,它可以用來實現(xiàn)很多有趣的應(yīng)用,還可以使用Redis來實現(xiàn)分布式鎖,這樣你就可以在多線程或多進程的環(huán)境下同步代碼,這篇文章主要介紹了Java中的Redis是什么意思,需要的朋友可以參考下
    2023-08-08
  • 深入了解Java排序算法

    深入了解Java排序算法

    本文主要介紹了深入了解Java排序算法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2007-03-03
  • RocketMQ延遲消息超詳細(xì)講解

    RocketMQ延遲消息超詳細(xì)講解

    延時消息是指發(fā)送到 RocketMQ 后不會馬上被消費者拉取到,而是等待固定的時間,才能被消費者拉取到。延時消息的使用場景很多,比如電商場景下關(guān)閉超時未支付的訂單,某些場景下需要在固定時間后發(fā)送提示消息
    2023-02-02
  • Spring配置多個數(shù)據(jù)源并實現(xiàn)數(shù)據(jù)源的動態(tài)切換功能

    Spring配置多個數(shù)據(jù)源并實現(xiàn)數(shù)據(jù)源的動態(tài)切換功能

    這篇文章主要介紹了Spring配置多個數(shù)據(jù)源并實現(xiàn)數(shù)據(jù)源的動態(tài)切換功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • java中不同版本JSONObject區(qū)別小結(jié)

    java中不同版本JSONObject區(qū)別小結(jié)

    本文主要介紹了java中不同版本JSONObject區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Java instanceof關(guān)鍵字的的進一步理解

    Java instanceof關(guān)鍵字的的進一步理解

    這篇文章主要介紹了Java instanceof關(guān)鍵字的的進一步理解,本文用一些實例講解了instanceof操作符的一些知識,需要的朋友可以參考下
    2015-03-03
  • Java高級應(yīng)用之斗地主游戲

    Java高級應(yīng)用之斗地主游戲

    這篇文章主要為大家詳細(xì)介紹了Java高級應(yīng)用之斗地主游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05

最新評論