Dev/Android

Retrofit2 이슈 - com.google.gson.JsonIOException: JSON document was not fully consumed.

healthyryu 2022. 4. 25. 16:41

이슈

retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall@dffd7f3
com.google.gson.JsonIOException: JSON document was not fully consumed.

 

원인

REST API 의 Response 형태가 json 형태가 아닌 String 형태로 내려올 경우에 발생한다.

 

 

해결

ScalarsConverterFactory 추가

.addConverterFactory(ScalarsConverterFactory.create())

 

Retrofit.Builder()
    .baseUrl(IhpUrl.rest_api_url)
    .addConverterFactory(ScalarsConverterFactory.create())
    .addConverterFactory(GsonConverterFactory.create(gson))
    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
    .build();

ScalarsConverterFactory 는 Response 형태가 구조를 갖춘 json 형태가 아닌 string 형태로 받을 때 사용하는 컨버터
- 응답값을 String 형태로 받을 때 사용

 

Class ScalarsConverterFactory

- A converter for strings and both primitives and their boxed types to text/plain bodies

https://square.github.io/retrofit/2.x/converter-scalars/retrofit2/converter/scalars/ScalarsConverterFactory.html

 

ScalarsConverterFactory (Converter: Java Scalars 2.7.1 API)

public final class ScalarsConverterFactory extends Converter.Factory A converter for strings and both primitives and their boxed types to text/plain bodies.

square.github.io

 

반응형

'Dev > Android' 카테고리의 다른 글

Kotlin Gson 활용해서 Json 파싱하는 방법  (0) 2022.07.28
Room DB 마이그레이션  (0) 2022.07.14
[AndroidStudio] 사용중이던 Github 계정 바꾸기  (0) 2022.03.30
Jetpack Compose - 1  (0) 2022.03.30
[Android] 꺼진 화면 켜기  (0) 2022.03.24