Retrofit 如何仅 post 特定字段的数据?

Retrofit How to post data on specific field only?

我想post对象的数组列表只有特定的字段。我通常将所有字段对象存储到 post 调用。 我不知道我应该在哪里改变。

这是我的对象class

public class Verify {
    @SerializedName("id")
    @Expose
    private int id;
    @SerializedName("name")
    @Expose
    private String name;
    @SerializedName("phone")
    @Expose
    private String phone;
}

API只需要postID作为参数,数组中有多个数据。 例如:

List<Verify> ver = new Arraylist()<>;
ver.add("1", John, 62807677999);
ver.add("2", Dap, 6286753193);
ver.add("3", Keel, 62812386423);
ver.add("4", Martin, 62819823733);

API 服务

@POST("https://www.mmsnusindo.com/api/ver/kunjungan/rejected")
    Call<List<Verify>> verifikasiKunjunganRejected(@Header("api-key") String content_type, @Body ArrayList<Verify> modelContact);

我得到了什么错误

{"status":false,"message":"Error data validation","info":{"id":["The id field is required."]}}

此代码类似于验证数据用户,因此arraylist中会有多个数据,我使用复选框选择数据有效或无效,然后使用POST API发送有效或无效。

示例成功post请求

如 api url ?id=284213 所示,您需要在调用中添加 query 参数。

试试下面的代码:

@POST("https://www.mmsnusindo.com/api/ver/kunjungan/rejected")
    Call<List<Verify>> verifikasiKunjunganRejected(@Header("api-key") String content_type,
                                                   @Query("id") String id,// please check your id is int or String.
                                                   @Body ArrayList<Verify> modelContact);

根据屏幕截图。 body 不是必需的。所以可以这样

@POST("https://www.mmsnusindo.com/api/ver/kunjungan/rejected")
    Call<List<Verify>> verifikasiKunjunganRejected(@Header("api-key") String content_type,
                                                   @Query("id") String id;// please check your id is int or String.