我正在嘗試使用這樣的端點將數據發送到服務器: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
提交
取消