[JAVA] Open API 날씨 정보 가져오기

yoon·2023년 12월 31일
0

java

목록 보기
17/19
post-thumbnail

✅ HttpURLConnection

HTTP 프로토콜을 사용하여 특정 웹 서버와 통신하기 위한 클래스

날씨 가져오기

날씨 정보 사이트
https://openweathermap.org/

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class WeatherPrac {
    public static void main(String[] args) {
        String apiKey = "";
        String city = "Seoul";
        String urlString = "https://api.openweathermap.org/data/2.5/weather?q="+city+"&appid="+apiKey+"&units=metric";

        try{
            URL url = new URL(urlString);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.setRequestProperty("Accept","application/json"); //json형식으로 받겠다.

            int responseCode = conn.getResponseCode(); //status code
            if(responseCode==200){
                //정상
                //스트립(Stream = 입.출력)의 연결
                //                       buffer에 데이터 모음 /   문자 단위 데이터 처리 / 바이트 단위 데이터
                BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                String inputLine;
                StringBuffer content = new StringBuffer();
                while((inputLine=in.readLine())!=null){
                    content.append(inputLine);
                }
                in.close();
                System.out.println("result" + content.toString());

                //object로 데이터 받아오기
                JsonObject weatherData = JsonParser.parseString(content.toString()).getAsJsonObject();
                JsonObject mainData = weatherData.getAsJsonObject("main");
                double temp = mainData.get("temp").getAsDouble();
                conn.disconnect();

            }else{
                //오류
                System.out.println(responseCode);
            }


        }catch (Exception e){
            e.printStackTrace();
        }

    }


}
profile
하루하루 차근차근🌱

0개의 댓글