为了账号安全,请及时绑定邮箱和手机立即绑定

使用@Body 改造 POST 请求返回空响应主体

使用@Body 改造 POST 请求返回空响应主体

侃侃无极 2022-11-30 16:07:02
我正在尝试使用这样的端点将数据发送到服务器: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]");

....


查看完整回答
反对 回复 2022-11-30
  • 1 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号