Я использую Retrofit 2 и мне нужно отправить тело запроса. Проблема в том, как-то значение преобразуется в строку. В приведенном ниже примере вы можете видеть, что items
и totalPrice
, которые должны быть соответственно массивом и числом, конвертируются в строку.
{ cashierId: 'fff7079c-3fc2-453e-99eb-287521feee63',
items: '[{"amount":3,"id":"602a79e3-b4c1-4161-a082-92202f92d1d6","name":"Play Station Portable","price":1500000.0}]',
paymentMethod: 'Debt',
totalPrice: '4500000.0' }
Желаемое тело запроса:
{ cashierId: 'fff7079c-3fc2-453e-99eb-287521feee63',
items: [{"amount":3,"id":"602a79e3-b4c1-4161-a082-92202f92d1d6","name":"Play Station Portable","price":1500000.0}],
paymentMethod: 'Debt',
totalPrice: 4500000.0 }
Вот услуга
@POST("api/sales")
@FormUrlEncoded
Call<Sale> createSale(
@FieldMap Map<String, Object> fields
);
А вот как я называю createSale
Map<String, Object> fields = new HashMap<>();
fields.put("cashierId", UUID.fromString("fff7079c-3fc2-453e-99eb-287521feeaaa"));
fields.put("totalPrice", totalPrice);
fields.put("paymentMethod", paymentMethod);
fields.put("items", jsonArray);
Call<Sale> call = retailService.createSale(fields);
Можно ли отправить эти значения в виде числа и массива, а не в виде строки?