Я использую Retrofit в своем приложении Android для связи с REST-API. Когда пользователь меняет изображение своего профиля в моем приложении, мне нужно отправить запрос и загрузить новое изображение. Это моя служба:Как загрузить фотографию с помощью «Дооснащения»?
@Multipart
@PATCH("/api/users/{username}/")
Call<User> changeUserPhoto(@Header("Authorization") String token,@Path("username") String userName , @Part("photo") RequestBody photo);
И это мой код, чтобы отправить запрос:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(GlobalVars.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
UserService userService = retrofit.create(UserService.class);
Callback<User> callback = new Callback<User>() {
@Override
public void onResponse(Response<User> response, Retrofit retrofit) {
if (response.isSuccess()) {
//do sth
} else {
// do sth else
}
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
};
RequestBody photo = RequestBody.create(MediaType.parse("application/image"), new File(imageUir));
Call<User> call = userService.changeUserPhoto(token, username, photo);
call.enqueue(callback);
Но когда я отправить этот запрос на сервер, REST продолжает говорить мне, что фото не является файлом и что-то неправильно с типом кодирования. Может ли кто-нибудь помочь мне, как это исправить?
Спасибо. Ваш ответ сработал :) –