改造 2 @FieldMap 始终为空
Retrofit 2 @FieldMap always empty
我手动制作了地图
private Map<String, Object> getProducts(){
List<CartContentDMC> products = new Select().from(Data.class).execute();
Map<String, Object> productMap = new LinkedHashMap<>();
for(int j = 0; j < products.size(); j++){
productMap.put("products[" + Integer.toString(j) + "][code]", Integer.toString(products.get(j).id));
productMap.put("products[" + Integer.toString(j) + "][amount]", products.get(j).amount);
productMap.put("products[" + Integer.toString(j) + "][price]", Integer.toString(products.get(j).price));
}
return productMap;
}
,但在我的要求中:
@FormUrlEncoded
@POST("orders.json/createOrder?")
Call<Response> sendOrder(@Query("client_id") String id, @Query("access_token") String access_token,
@Query("order_id") int order_id, @Query("buyer_name") String buyer_name,
@Query("buyer_phone") String buyer_phone, @Query("buyer_address") String buyer_address,
@FieldMap Map<String, Object> products, @Query("delivery_price") int delivery_price,
@Query("website") String website);
FieldMap 在请求中总是空的。
我做错了什么?
在这种情况下最好使用@QueryMap 而不是@FieldMap。
我手动制作了地图
private Map<String, Object> getProducts(){
List<CartContentDMC> products = new Select().from(Data.class).execute();
Map<String, Object> productMap = new LinkedHashMap<>();
for(int j = 0; j < products.size(); j++){
productMap.put("products[" + Integer.toString(j) + "][code]", Integer.toString(products.get(j).id));
productMap.put("products[" + Integer.toString(j) + "][amount]", products.get(j).amount);
productMap.put("products[" + Integer.toString(j) + "][price]", Integer.toString(products.get(j).price));
}
return productMap;
}
,但在我的要求中:
@FormUrlEncoded
@POST("orders.json/createOrder?")
Call<Response> sendOrder(@Query("client_id") String id, @Query("access_token") String access_token,
@Query("order_id") int order_id, @Query("buyer_name") String buyer_name,
@Query("buyer_phone") String buyer_phone, @Query("buyer_address") String buyer_address,
@FieldMap Map<String, Object> products, @Query("delivery_price") int delivery_price,
@Query("website") String website);
FieldMap 在请求中总是空的。
我做错了什么?
在这种情况下最好使用@QueryMap 而不是@FieldMap。