не могу публиковать данные с модификацией, используя multipart при включении файла - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь использовать multipart для публикации данных, используя модернизацию android studio, но у меня возникает проблема, когда я включаю файл изображения в Call<ResponeBody>, это ничего не радует, но когда я устанавливаю файл изображения на null, его нормальная загрузка в базу данных сервера

вот мой код ApiInterface

@Multipart
@POST("booking-order")
Call<ResponseBody> bookingOrder(@HeaderMap Map<String, String> stringStringMap,
                                @PartMap Map<String, RequestBody> stringBody,
                                @Part MultipartBody.Part filePart
);

getImageFrom память телефона

private void openFileChooser() {
    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
    photoPickerIntent.setType("image/*");
    startActivityForResult(photoPickerIntent, PICK_IMAGE_REQUEST);
}

getImage uri

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK) {
        mImageUri = data.getData();
    }
}

процесс

private void initProsesOrder(int ids) {
        Map<String, String> map = new HashMap<>();
        map.put("APP_TOKEN", UtilsApi.APP_TOKEN);
        map.put("USER_TOKEN", prefManager.getTokenUser());
        Map<String, RequestBody> bodyMap = new HashMap<>();
        bodyMap.put("member_id", createPartFromString(prefManager.getId() + ""));
        bodyMap.put("product_jasa_id", createPartFromString(ids + ""));
        bodyMap.put("member_address_id", createPartFromString(lokasi_maps));


        File file = new File(mImageUri.getPath());
        RequestBody propertyImage = RequestBody.create(MediaType.parse("multipart/from-data"), file);
        MultipartBody.Part propertyImagePart = MultipartBody.Part.createFormData("booking_image[]",
                file.getName(),
                propertyImage);


        Call<ResponeBody> call = apiInterface.bookingOrder(map,
                bodyMap,
                propertyImagePart);
        )
...