07/09/2018, 15:58
Upload a File using Retrofit
Có rất nhiều docs hướng dẫn nhưng mình thấy upload như này hiệu quả nhất nên note lại Mình sẽ đi vào ví dụ luôn cho nhanh public interface ApiInterface { @Multipart @POST ("/api/Accounts/editaccount") Call<User> editUser (@Header("Authorization") String ...
Có rất nhiều docs hướng dẫn nhưng mình thấy upload như này hiệu quả nhất nên note lại
Mình sẽ đi vào ví dụ luôn cho nhanh
public interface ApiInterface { @Multipart @POST ("/api/Accounts/editaccount") Call<User> editUser (@Header("Authorization") String authorization, @Part("file"; filename="pp.png" ") RequestBody file , @Part("FirstName") RequestBody fname, @Part("Id") RequestBody id); }
Ở đoạn code trên chú ý đến
@Part("file"; filename="pp.png" ") RequestBody file ở đây "file"; =>file là param request lên
Tiếp đến là send request to server
File file = new File(imageUri.getPath()); RequestBody fbody = RequestBody.create(MediaType.parse("image/*"), file); RequestBody name = RequestBody.create(MediaType.parse("text/plain"), firstNameField.getText().toString()); RequestBody id = RequestBody.create(MediaType.parse("text/plain"), AZUtils.getUserId(this)); Call<User> call = client.editUser(AZUtils.getToken(this), fbody, name, id); call.enqueue(new Callback<User>() { @Override public void onResponse(retrofit.Response<User> response, Retrofit retrofit) { } @Override public void onFailure(Throwable t) { t.printStackTrace(); } });
Bài sau mình sẽ hướng dẫn upload multiple file