Загрузка сжатого изображения на сервер с помощью retrofit

Я использую retrofit в своем проекте. Теперь мне нужно загрузить изображение на сервер с помощью retrofit. Поэтому мне нужна помощь в следующем вопросе:

Как загрузить сжатый растровый рисунок на сервер с помощью дооснащения в данных формы? Любая ссылка или пример будут полезны.

1 ответов


Upload можно сделать, используя следующие шаги

Шаг 1: Создайте метод С ниже код

UploadPhotoRetroService service = ServiceGenerator.createService(MyActivity.class, "base-url");
TypedFile typedFile = new TypedFile("image/jpeg", new File(imagePath));
service.upload(typedFile, new Callback<String>() {
    @Override
    public void success(String result, Response response) {
        // success call back    
    }
    @Override
    public void failure(RetrofitError error) {
        error.printStackTrace();
    }
});

Шаг 2: Создайте интерфейс, как показано ниже

public interface UploadPhotoRetroService {
    @Multipart
    @POST("/whatever-your-api")
    void upload(@Part("Photo") TypedFile file, Callback<String> callback);
}

Шаг 3: Создайте класс, как показано ниже

public class ServiceGenerator {

    private ServiceGenerator() {
    }

    public static <S> S createService(Class<S> serviceClass, String baseUrl) {
        RestAdapter.Builder builder = new RestAdapter.Builder()
                .setEndpoint(baseUrl)
                .setClient(new OkClient(new OkHttpClient()));

        RestAdapter adapter = builder.build();

        return adapter.create(serviceClass);
    }
}