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();
}
}
}