반응형
안녕하세요 여러분.
오늘은 안드로이드 스튜디오에 날씨API 적용하는 방법에 대해 알려드릴게요.
이를 바탕으로 다른 API들도 응용해서 사용해보시길 바라요~
기본적으로 코드(KEY) 신청을 했다는 가정하에 글을 작성할게요!!
저는 OpenWeatherMap API를 사용했어요. 페이지는
https://openweathermap.org/api
에요.
여기서
저는 Current & Forecatst API를 선택했어요.
설명서는 저 API doc을 누르면 나오는데 역시나 설명이 알아들을 수 없게 돼있더라구요.
그래서 열심히 공부해서 간단하게 하는법을 찾았어요.
자..
안드로이드 스튜디오 java 코딩을 할 줄 안다는 가정하에 글을 올리게용.
먼저 설명서 스샷.
import android.app.Application;
import org.json.JSONArray;
import org.json.JSONObject;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface WeatherApi {
public static final String API_URL = "https://api.openweathermap.org/"; //저랑 같은 날씨 API를
//쓰면 같아요. 이게 BASE_URL 이 될 수 도 있어요.
@GET("data/2.5/weather") //BASE_URL과 get괄호 안에를 합치면 설명서에 나와있는 주소가 돼요.
Call<Object> getWeather(@Query("q") String q, @Query("appid") String appid);
// q 는 설명서에 ?q 부분이고 appid 도 설명서에 appid 부분이에요. 즉, 설명서 API주소를 이런식으로 맟추는거에요.
}
설명서랑 코딩이랑 비교해 보면 딱 알겠죠? URL에 뭐쓰고 get에는 뭐쓰고 call 부분에 쿼리에는 뭐쓰는지 ㅎㅎ..
사실 interface 까지 만들어서 할 필요는 없지만 체계적인 코딩을 위해서 이렇게 연습하는걸 추천드려용
API사용 하는 엑티비티 부분이에요!
import android.app.Activity;
import android.os.Bundle;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.io.IOException;
import retrofit2.Call;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class TwoFood extends Activity {
Retrofit retrofit;
WeatherApi weatherApi;
private final static String appKey = "내 코드";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.내 액티비티);
retrofit = new Retrofit.Builder().baseUrl("https://api.openweathermap.org/").addConverterFactory(GsonConverterFactory.create()).build();
weatherApi = retrofit.create(WeatherApi.class);
Call<Object> getWeather = weatherApi.getWeather("London",appKey); //나라는 런던 으로 걍 했어용
try{
System.out.println(getWeather.execute().body());
}catch (IOException e){
e.printStackTrace();
}
}
}
코드를 보시면 알겠지만 interface를 기본으로 간단하게 작성했어요.
baseUrl의 주소는 interface WeatherApi의 url과 똑같죠? 그냥 삽입해도 돼요.
저 코드를 java 메인 함수로 해서 결과를 출력하면.
이렇게 날씨 정보가 나와요!
gson형식인데 알아서 json으로 바꾸어서 틀에 맞게 사용하시면 됩니다!!
질문있으면 댓글 달아주세요~
안녕~
반응형
'IT기술(코딩)' 카테고리의 다른 글
retrofit을 이용한 open API 데이터 POJO 만들기,모델 만들기,데이터 틀 만들기 java (0) | 2020.08.05 |
---|---|
socket failed: EPERM (operation not permitted) 에러 해결방법.[안드로이드 스튜디오] (0) | 2020.08.05 |
aws(아마존 외부 서버) 생성, 사용 방법!!!@# (0) | 2020.08.02 |
라즈베리파이 서버 구축 mysql 로그인 오류 해결 (0) | 2020.08.02 |
라즈베리파이 서버 구축 mysql 편 (0) | 2020.08.02 |