티스토리 뷰

반응형

 

레트로핏을 사용하다 보면 아래의 예처럼  @body 안에  null value를 보내야 할 때가 있다. 

하지만 이렇게 서버에 보냈는데도 불구하고 데이터가 null 이어서 아에 안보내줄 때가 있다.

이 때에는 Retrofit.Builder() 설정을 바꾸어 주면 된다. 

@POST("url")
suspend fun create(
    @Header("Authorization") token: String,
    @Body BodyDto: BodyDto,
): Response<ResponseDataDto<Dto>>
data class Dto(
    @SerializedName("message")
    val message: String?,
)

 

 

Builder 부분을 

Retrofit.Builder()
    .baseUrl(httpUrl)
    .client(client)
    .addConverterFactory(GsonConverterFactory.create())
    .addCallAdapterFactory(CoroutineCallAdapterFactory())
    .addCallAdapterFactory(RxJava3CallAdapterFactory.create())
    .build()
    .create(service)

 

 

아래와 같이 바꿔주면 된다. 

 .addConverterFactory(GsonConverterFactory.create(GsonBuilder().serializeNulls().create()))

Retrofit.Builder()
    .baseUrl(httpUrl)
    .client(client)
    .addConverterFactory(GsonConverterFactory.create(GsonBuilder().serializeNulls().create()))
    .addCallAdapterFactory(CoroutineCallAdapterFactory())
    .addCallAdapterFactory(RxJava3CallAdapterFactory.create())
    .build()
    .create(service)
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함