728x90
원인
우리가 Response로 받을 거라 생각했던 타입과 실제 들어온 Response의 타입이 달랐을 때 발생하는 오류
해결
- Response의 타입에 맞게 데이터 클래스를 선언해 주거나
- 오브젝트를 String으로 변환시켜 주는 ScalarsConverterFactory 라이브러리를 사용하거나
둘 중 하나를 택하면 된다.
2번을 선택할 경우 방법은 다음과 같다.
의존성 추가
implementation 'com.squareup.retrofit2:converter-scalars:2.9.0'
retrofit 선언부에 추가
.addConverterFactory(ScalarsConverterFactory.create())
val rt = retrofit2
.Retrofit
.Builder()
.baseUrl(baseUrl)
.client(clientBuilder)
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(APIEndpoint::class.java)
이제 호출하면 String형태로 출력되는 것을 볼 수 있다. 만약 Response의 타입을 String이 아닌 별도의 데이터 타입으로 선언했다면 타입이 맞는지 확인하길 바란다.
728x90