2015-12-11 3 views
2

Я сделал карту вручнуюдооснащения 2 @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 всегда пусто в запросах.

Что я делаю неправильно?

+0

Вы уверены, что 'товары' заполнены правильно? – Blackbelt

+0

@Blackbelt Абсолютно! Это дает такую ​​карту: продукты [0] [код], 9 продукты [0] [количество], 3 продукты [0] [цена], 15000 продукты [1] [код], 65 продукты [1] [количество], 5 продукты [1] [цена], 15000 продукты [2] [код], 68 продукты [2] [количество], 2 продукты [2] [цена], 25000 – micsha123

ответ

0

В таком случае лучше использовать @QueryMap вместо @FieldMap.

+2

'@ QueryMap' и '@ FieldMap' - две разные вещи. '@ QueryMap' добавляет запрос к вашему URL-адресу. '@ FieldMap' заполняет тело вашего запроса – Blackbelt

Смежные вопросы