Sobes.tech
Назад к вопросам
Junior — Middle
78

Каким образом можно передать изображение на сервер с использованием библиотеки Retrofit?

Компании, где спрашивали
ВанТу Ворк

Ответ от нейросети

sobes.tech AI

Для передачи изображения на сервер с помощью Retrofit обычно используют multipart-запрос. Изображение передается как часть формы с типом MultipartBody.Part. Пример:

// Интерфейс API
public interface ApiService {
    @Multipart
    @POST("upload")
    Call<ResponseBody> uploadImage(@Part MultipartBody.Part image);
}

// Подготовка файла и создание MultipartBody.Part
File file = new File("path/to/image.jpg");
RequestBody requestFile = RequestBody.create(MediaType.parse("image/jpeg"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile);

// Вызов API
ApiService service = retrofit.create(ApiService.class);
Call<ResponseBody> call = service.uploadImage(body);
call.enqueue(new Callback<ResponseBody>() {
    @Override
    public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
        // обработка успешного ответа
    }

    @Override
    public void onFailure(Call<ResponseBody> call, Throwable t) {
        // обработка ошибки
    }
});

Такой подход позволяет отправить файл как часть multipart/form-data запроса, что часто требуется для загрузки изображений на сервер.