我正在尝试使用这样的端点将数据发送到服务器:https://api.test.com/sales/taken?key=1a2b3c&sales_number=abc&taken[0][id_product]=123&taken[0][qty]=123&taken[1][id_product]=123&taken[1][qty]=123根据Android Retrofit POST ArrayList,发送列表的最佳方法是使用@Body而不是@Field. 所以我做了一个模型来适应这样的终点:public class Model { @SerializedName("key") private String key; @SerializedName("sales_number") private String sales_number; @SerializedName("taken") private List<Taken> taken; public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getSales_number() { return sales_number; } public void setSales_number(String sales_number) { this.sales_number = sales_number; } public List<NotaAmbilDetailModel> getTaken() { return taken; } public void setTaken(List<NotaAmbilDetailModel> taken) { this.taken = taken; }}
1 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
您的 api 请求需要查询参数而不是请求正文。
像这样尝试
要求
@POST("/sales/taken")
Call<ResponseModel> sendData(@QueryMap Map<String, String> queryMap);
api参数
Map<String, String> queryMap = new HashMap<>();
queryMap.put("key", "value_for_key");
queryMap.put("sales_number", "value_for_sales_number");
queryMap.put("taken[0][id_product]", "value_for_taken[0][id_product]");
queryMap.put("taken[0][qty]", "value_for_taken[0][qty]");
queryMap.put("taken[1][id_product]", "value_for_taken[1][id_product]");
queryMap.put("taken[1][qty]", "value_for_taken[1][qty]");
....
添加回答
举报
0/150
提交
取消
