Android Retrofit 사용하기

사용 버전: Android Studio 4.0.1

사용 언어: Kotlin 1.3.72


안드로이드 Retrofit 사용하기를 해보겠습니다.



Retrofit은 HTTP API를 interface로 만들어줍니다.


공식 홈페이지입니다.



사용법은 app 용 build.gradle에 아래 implementation을 추가합니다.

Java 8+ 또는 Android API 21+가 요구됩니다.





Sync Now를 누릅니다.




Retrofit은 응답을 여러 가지 방면으로 사용할 수 있도록 컨버터를 제공해 줍니다.

응답 값을 String으로 받아보겠습니다. Scalars가 필요합니다.










Sync Now를 누릅니다.

Rebuild 해줍니다.


에러가 발생하면 아래와 같이 해줍니다.





사용할 API 주소는 다음과 같은 형식입니다.

http://data.ex.co.kr/openapi/restinfo/restBestfoodList?key=x&type=x&numOfRows=x&pageNo=x



Interface를 하나 만듭니다.





retrofit 변수를 생성하고, Scalar Converter를 설정, baseurl을 설정하고, build 합니다.






그리고 interface를 만들어서 HTTP Method를 설정합니다. 아래는 @GET이 사용되었습니다.

@Query는 URL에서 ? 뒤에 오는 값들을 말합니다.




getAreaList를 하면, Call 클래스의 String 형식으로 받는다는 말입니다.



object를 만들고 위에서 만든 interface를 상속한 변수를 만듭니다.






응답 화면을 표시하기 위해서 LiveData를 사용합니다.

인터넷 연결이다 보니 언제 응답이 도착할지 모릅니다. LiveData가 필요합니다.



아래처럼 LiveData를 만듭니다.





함수를 하나 만듭니다.

위에 interface에서 object를 부른 후, getAreaList()를 합니다. enqueue에는 응답에 대한 Callback 함수를 정의합니다.

onFailure에는 실패했을 때의 상황이 들어가고, onResponse에는 성공했을 때의 상황이 들어갑니다.








init 블록에 위의 함수를 부릅니다.





layout의 적당한 textView에 LiveData를 넣습니다.






실패했을 때의 상황입니다.





성공했을 때의 상황입니다.





끝.



카테고리: Android

댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

Python OpenCV 빈 화면 만들기

tensorflow tf.random.uniform()

Android Notification with Full Screen

KiCad 시작하기 2 (PCB 만들기)

Android Minimum touch target size

Python bs4.SoupStrainer()

KiCad 시작하기 4 (기존 회로도 수정 및 추가)

음악 총보(Score), 파트보(Part)

tensorflow tf.expand_dims()