Загрузка сжатого изображения на сервер с помощью 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);
}
}