Retrofit을 사용하여 GET 요청을 보내고 응답을 처리하는 예제!
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-gson:2.9.0")
인터넷 권한 설정!
<uses-permission android:name="android.permission.INTERNET" />
// 카카오 이미지 검색 API 사용 예시
data class KakaoImage(
val collection: String,
@SerializedName("thumbnail_url")
val thumbnailUrl: String,
@SerializedName("image_url")
val imageUrl: String,
@SerializedName("display_sitename")
val siteName: String,
@SerializedName("doc_url")
val docUrl: String,
val datetime: String
)
@SerializedName
에 원래 속성명을 쓰고 바꾸면 됨! @SerializedName("thumbnail_url")
val thumbnailUrl: String,\
(JSON 데이터만 사용해봐서 XML도 똑같은지는 잘 모르겠음...)interface KakaoApi {
@GET("v2/search/image")
fun searchImage(
@Query("query") query: String
): Call<KakaoImageList>
}
@GET
에 써줌private val retrofit = Retrofit.Builder()
.baseUrl(Constants.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(networkClient)
.build()
Constants.BASE_URL
은 카카오 API URL을 상수로 설정해놓은거!try {
val response = kakaoApi.getPosts()
if (response.isSuccessful) {
val posts = response.body()
// 응답 데이터(posts)를 처리하는 로직 작성
} else {
// 오류 처리
}
} catch (e: Exception) {
// 네트워크 오류 처리
}
[참고 사이트]
'[Kotlin] Retrofit 사용한 API 통신 방법', 나의 개발 해방 일지
'[kotlin][Android] retrofit2 (레트로핏) 사용방법', 챠니의 코딩일기