Как загрузить несколько изображений с помощью дооснащения? - PullRequest
0 голосов
/ 24 февраля 2019

Мне нужно загрузить информацию о нескольких продуктах с изображениями, каждый продукт имеет name, quantity, price, image (filePath).и массив продуктов будет отправлен в ключе items (см. прилагаемое изображение)

enter image description here

ProductModel

public class ProductModel  {

    private String itemName;
    private String itemDesc;
    private int  qty = 1;
    private String itemImage;


    public String getItemImage() {
        return itemImage;
    }

    public void setItemImage(String itemImage) {
        this.itemImage = itemImage;
    }

    public int getQty() {
        return qty;
    }

    public void setQty(int qty) {
        this.qty = qty;
    }

    public String getItemDesc() {
        return itemDesc;
    }

    public void setItemDesc(String itemDesc) {
        this.itemDesc = itemDesc;
    }

    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

}

Пожалуйста, помогите мне отправить запрос на сервер.

1 Ответ

0 голосов
/ 24 февраля 2019

Вы должны использовать MultipartBody.Part для загрузки нескольких изображений с использованием дооснащения.Попробуйте этот код:

public interface WebServicesAPI { 
    @Multipart
    @POST("url")
    Call<YourModel> upload(@Part MultipartBody.Part name, @Part MultipartBody.Part desc, @Part MultipartBody.Part image);
}

Вот метод загрузки файлов.

    private void upload() {
       MultipartBody.Part name= MultipartBody.Part.createFormData("name", productModel.getName());
       MultipartBody.Part desc= MultipartBody.Part.createFormData("desc", productModel.getDesc());
       File propertyImageFile = new File(productModel.getPropertyImagePath());
        RequestBody propertyImage = RequestBody.create(MediaType.parse("image/*"), propertyImageFile);
        MultipartBody.Part propertyImagePart = MultipartBody.Part.createFormData("image", propertyImageFile.getName(), propertyImage);

        final WebServicesAPI webServicesAPI = RetrofitManager.getInstance().getRetrofit().create(WebServicesAPI.class);
        Call<UploadSurveyResponseModel> response = null;

        response = webServicesAPI.upload(name, desc, propertyImagePart);

        response.enqueue(this);
    }
...