Gambar terkait

Dalam menggunakan Library retrofit sebagai HTTP client pada Android terkadang kita membutuhkan untuk mengirim file dalam jumlah banyak ,
retrofit menyediakan beberapa macam format jenis pengiriman data antara lain menggunakan
multipart,
multipar ini salah satu metode HTTP request untuk mengirim data ke server dan biasanya digunakan untuk mengirim file dengan ukuran yang besar seperti gambar .


Contoh penerapan :

1. Interface 

    @Multipart
    @POST("api/upload")
    Call<BaseResponse> postdata(
            @PartMap HashMap<String, RequestBody> multidata );

2.   Fungsi kirim data 

        HashMap<String, RequestBody> map = new HashMap<>();
        map.put("perihal", createPartFromString(txt_perihal.getText().toString()));

        RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
        MultipartBody.Part body = MultipartBody.Part.createFormData("file_surat", file.getName(), requestFile);
        call_post_surat = service.postsurat(map, body);
        call_post_surat.enqueue(new Callback<BaseResponse>() {
            @Override
            public void onResponse(Call<BaseResponse> call, Response<BaseResponse> response) {
                Toast.makeText(Menu_UploadSurat.this, response.body().getSuccess() + "", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(Call<BaseResponse> call, Throwable t) {
                Log.e("tes", "onFailure: ", t);
            }
        });
    }


3. Fungsi untuk membuat String data yang dikirim
    @NonNull
    private RequestBody createPartFromString(String string) {
        return RequestBody.create(
                okhttp3.MultipartBody.FORM, string);
    }