반응형
레트로핏을 사용하다 보면 아래의 예처럼 @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)
반응형
'기타' 카테고리의 다른 글
[Github] 소스트리 gitignore 안될 때. (1) | 2024.12.18 |
---|---|
[Android Studio] command not found: adb 에러 (0) | 2022.08.16 |
Github Token 방식으로 로그인하기 (0) | 2022.05.03 |
GitHub (0) | 2022.03.30 |
Ffmpeg avi에서 mp4 변환시 chrome에서 재생 안될때 해결 (0) | 2021.09.14 |