Retrofit 2 и Multipart. Как работает?

Ответить
MilanFan
Сообщения: 1
Зарегистрирован: 24 сен 2016, 14:55

Retrofit 2 и Multipart. Как работает?

Сообщение MilanFan » 24 сен 2016, 14:59

Здравствуйте!
Пытаюсь отправить на сервер POST запрос на создание заказа. Использую Retrofit 2.
Описываю переменные:

Код: Выделить всё

    private Gson gson = new GsonBuilder().create();
    private Retrofit retrofit = new Retrofit.Builder()
            .addConverterFactory(GsonConverterFactory.create(gson))
            .baseUrl("mySite.ru")
            .build();
    private APIv1 intface = retrofit.create(APIv1.class);
Подскажите как правильно передать параметры на сервер?
Формирую следующий Map, а как правильно описать Интерфейс и передать параметр не могу сообразить:

Код: Выделить всё

        Map<String, String> params = new HashMap<String, String>();

        params.put("price", String.valueOf(OrderProducts.getBoxSumm()));
        params.put("number_person", "1");
        params.put("payment_type", "cash");
        params.put("delivery", "yes");
        params.put("client[name]", this.clientname);
        params.put("client[phone]", this.clientphone);
        params.put("client[address]", this.clientaddress);

        List<OrderProducts> orderProducts = OrderProducts.getOrderProductsNew();
        for (int i = 0; i < orderProducts.size(); i++) {
            OrderProducts p = orderProducts.get(i);

            Product product = Product.getProductById(p.productid);
            if (product != null) {

                params.put("products["+ String.valueOf(i)+"][product_id]", String.valueOf(product.extid));
                params.put("products["+ String.valueOf(i)+"][amount]", String.valueOf(p.amount));
            }
        }
Интерфейс:

Код: Выделить всё

public interface APIv1 {

    @Multipart
    @POST("/api/v1/order/create")
    Response SendOrder(@Body ЧтоДолжноБытьЗдесь?);

}
Заранее спасибо!

Ответить