改造 2 @FormUrlEncoded 与空字段

我发送这个:


@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


ABOUTYOU
浏览 276回答 1
1回答

泛舟湖上清波郎朗

终于成功了,以下是我所做的更改:将我的 api 更新为:@PUT("Devices/{id}")Call<Device> updateDeviceCurfewSync(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; @Path("id") String id,&nbsp; &nbsp; @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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java