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);
}
0 Comments