我有空字段,但改造不发送到后端

Ema*_*cia 1 android kotlin retrofit2

我有这样的课程:

class MyData {

    @SerializedName("name")
    var name: String? = null

    @SerializedName("surName")
    var surName: String? = null
    
}
Run Code Online (Sandbox Code Playgroud)

我的服务调用是这样的。

interface MyServiceCall {
    
    @PUT("/My/endPoint")
    fun updateInfo(@Body info: MyData): Flowable<Response<ResponseBody>>

}
Run Code Online (Sandbox Code Playgroud)

但是当我只想发送姓名空时。null 不会转到后端,然后返回 400 - 错误请求。

所以我的问题是即使字段为空,如何将数据发送到后端?

小智 6

适用serializeNulls()GsonBuilder()为Retrofit对象添加converterFactory时:

 retrofit = new Retrofit.Builder().baseUrl("YOUR BASE URL")
    .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().serializeNulls().create()))
    .build();
Run Code Online (Sandbox Code Playgroud)

  • 如何为特定函数添加“seializeNulls()”? (2认同)