NOW OR NEVER

[Android] Retrofit 서버 통신 값 null로 올 시 처리 본문

Android

[Android] Retrofit 서버 통신 값 null로 올 시 처리

LAURA 2023. 12. 17. 01:33
반응형

 

전에는 nullOnEmptyConverterFactory라는 함수를 안드로이드에서 제공했었는 데 현재는 안하는 지 뜨지 않아 임의로 이렇게 함수를 만들어 놓고 해당 함수를 retrofit builder 에서 사용할 것이다.

private val nullOnEmptyConverterFactory =
            object : Converter.Factory() {
                fun converterFactory() = this

                override fun responseBodyConverter(
                    type: Type,
                    annotations: Array<out Annotation>,
                    retrofit: Retrofit,
                ) = object : Converter<ResponseBody, Any?> {
                    val nextResponseBodyConverter =
                        retrofit.nextResponseBodyConverter<Any?>(
                            converterFactory(),
                            type,
                            annotations,
                        )

                    override fun convert(value: ResponseBody) =
                        if (value.contentLength() != 0L) nextResponseBodyConverter.convert(value) else null
                }
            }

 

 

아래처럼 retrofit을 쓰는 함수 안의 retrofit builder 부분에서 addConverterFactory() 매개변수로 아까 만들어 놓은 함수를 넣기만 하면 끝이다!

 

Comments