기타
[Android Studio] Retrofit2 Body에 null value 보내기
개발_블로그
2023. 9. 11. 11:16
반응형
레트로핏을 사용하다 보면 아래의 예처럼 @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)
반응형