안드로이드 Retrofit2 사용

Jiyoon Chae·2021년 10월 31일
0

안드로이드

목록 보기
12/23

RETROFIT 사용

Retrofit

최신 버전 확인 : 깃허브 > TAGS

Tags · square/retrofit

  1. 안드로이드 GRADLE 추가
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

GSON 은 JSON이 STRING > OBJECT형식으로 변환하도록 도와주는데,
CONVERTER-GSON 라이브러리를 추가하면 자동으로 바꿔줌!

  1. bookService 인터페이스 만들기
    1. GET : 반환해주는 HTTP 형식, URL에 다 넣어서 전달
    2. POST : 요청 시, 새로운 데이터 만들 때, CREATE 용도, BODY에 넣어서 전달
  2. model 만들기 > dto 만들기
  1. 인터페이스 구현 해주기 : create를 해줘야함.

mainActivity 에서

val retrofit = Retrofit.Builder()
            .baseUrl("http://book.interpark.com")
            .addConverterFactory(GsonConverterFactory.create())
            .build()

retrofit.create() 를 이용해서 bookService를 구현할 수 있음

val bookService = retrofit.create(BookService::class.java)
        bookService.getBestSeller("E3D032D7DD9410421E98BA7F0C5186A24FCC7345D486953B1BBC88FEB64563CF")
            .enqueue(object : Callback<BestSellerDto>{
                override fun onResponse(
                    call: Call<BestSellerDto>,
                    response: Response<BestSellerDto>
                ) {
                        //성공 처리
                    //예외처리
                    if(response.isSuccessful.not()){
                        Log.e(TAG, "NOT SUCCESS")
                        return
                    }
                    response.body()?.let {
                        Log.d(TAG, it.toString())
                        it.books.forEach{book ->
                            Log.d(TAG, book.toString())
                        }
                    }

                }

                override fun onFailure(call: Call<BestSellerDto>, t: Throwable) {
                    Log.e(TAG, t.toString())
                }
            })
profile
바닐라라떼 좋아☕

0개의 댓글