我发送这个:@FormUrlEncoded@PUT("Devices/{id}")Call<Device> updateDeviceSync( @Path("id") String id, @Field("fieldName1") Integer fieldName1, @Field("fieldName2") String fieldName2, @Field("fieldName3") String fieldName3);我打电话给它:apiService.updateDeviceSync(deviceId, 0, null, timestamp)但它唯一的发送fieldName1和fieldName3我的 gsonbuilder 已经有了serializeNulls(),所以它应该在其中包含空值,但 logcat 显示它不包括fieldName2我需要在改造 2 中将 fieldName2 更新为 null
1 回答
泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
终于成功了,以下是我所做的更改:
将我的 api 更新为:
@PUT("Devices/{id}")
Call<Device> updateDeviceCurfewSync(
@Path("id") String id,
@Body HashMap<String, Object> data);
然后调用:
HashMap<String, Object> deviceSyncMap = new HashMap<>();
deviceSyncMap.put("fieldName1", 0);
deviceSyncMap.put("fieldName2", null);
deviceSyncMap.put("fieldName3", timestamp);
apiService.updateDeviceCurfewSync(deviceId, deviceSyncMap)
添加回答
举报
0/150
提交
取消