Articles of retrofit

Создание N последовательных вызовов api с использованием RxJava и дооснащения

У меня есть список файлов, которые я бы хотел загрузить на сервер с устройства Android. Из-за ограничений памяти я хотел бы сделать второй вызов API только после первого завершения, третьего после второго завершения и так далее. Я написал что-то вроде private Observable<Integer> uploadFiles(List<File> files) { return Observable.create(subscriber -> { for (int i = 0, size […]

Retrofit 2: responseBodyConverter преобразует в нулевой объект

Я использую последнюю версию (2.0.0-beta4) версии Retrofit . При получении кода 200 OK с сервера все работает нормально. Но я тоже хочу иметь дело с ответами не на OK, например с кодом 401. Таким образом, мне нужно получить код ответа об ошибке, чтобы точно определить, что нужно делать и отображать соответствующие данные: @Override public void […]

«Дооснащение» неспособно создать адаптер вызова

Это мой интерфейс UserService @GET(Constants.Api.URL_LOGIN) String loginUser(@Field("email") String email, @Field("password") String pass, @Field("secret") String secret, @Field("device_id") String deviceid, @Field("pub_key") String pubkey, @Field("device_name") String devicename); В своей деятельности я звоню retrofit = new Retrofit.Builder() .baseUrl(Constants.Api.URL_BASE) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); service = retrofit.create(UserService.class); String status = service.loginUser(loginedt.getText().toString(), passwordedt.getText().toString(), secret, device_id, pub_key, device_name); Это создает исключение java.lang.IllegalArgumentException: Unable to […]

Как обрабатывать параметры, которые могут быть ARRAY или OBJECT в Retrofit на Android?

У меня возникла проблема, когда обработчик API, который я обрабатываю, возвращает OBJECT для ARRAY размера 1. Например, иногда API будет отвечать: { "monument": [ { "key": 4152, "name": "MTS – Corporate Head Office", "categories": {}, "address": {} }, { "key": 4151, "name": "Canadian Transportation Agency", "categories": {}, "address": {} }, { "key": 4153, "name": "Bank […]

Загрузите видео с Url с помощью Retrofit

Я использую Retrofit для использования веб-сервисов, и пока это отлично. Но делает ли Retrofit способ загрузки видео с URL-адресов? Я проверил эту ссылку, но аннотация @Streaming больше не доступна. Ретро нужные скачать изображения

Есть ли какой-либо шаблон разработки, который может заменить IntentService для сетевых запросов?

В текущем приложении, которое я разрабатываю совместно со сотрудником, мы используем IntentServices с вызовами Volley внутри, чтобы обрабатывать сетевые запросы API RESTful. Это просто простые строковые данные JSON и некоторые небольшие изображения. Мой вопрос для тех, кто имеет опыт обработки сетевых запросов, заключается в следующем: есть ли что-то более подходящее или более чистое для реализации […]

Retrofit – android.os.NetworkOnMainThreadException

Я использую Retrofit 2, чтобы получить json и разобрать его на POJO. Моя цель – получить одно значение этого объекта. compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4' compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4' Мой клиент REST: public interface MyClient { @GET("/part1/part2") Call<MyItem> getMyItem(@Query("param1") String param1, @Query("param2") String param2, @Query("param3") String param3); } Здесь я нашел отличный инструмент для создания сервиса: public class ServiceGenerator { […]

Observable.empty () вызывает java.util.NoSuchElementException: Последовательность не содержит элементов

Я использую Retrofit 2.0.0-beta2 с RxJava 1.0.14. Я обрабатываю ошибки таким образом, потому что мне нужно выполнить некоторый код в doFinally: .onErrorResumeNext(Observable.empty()); Но когда я получаю HTTP-ответ с ошибкой (например, 401), мое приложение падает без моих классов в трассировке стека. Ничего плохого не происходит, если использовать Observable.never . Вот полная трассировка стека: java.lang.IllegalStateException: Exception thrown […]

Дооснащение / Rxjava и сеансовые службы

Я реализую услуги на основе сеанса. Все запросы должны быть подписаны с параметром сеанса cookie, который, в свою очередь, извлекается с помощью отдельного rest api. Таким образом, основной рабочий процесс состоял бы в том, чтобы получить cookie сеанса и продолжить запрос к услугам. Иногда cookie истекает, и это приведет к другому запросу cookie сеанса. Я […]

Android: изменить URL-адрес пути без "/"

Поэтому я фактически пытаюсь сделать PUT с TypedByteArray как мое тело. Я взаимодействую с сервером Azure, поэтому первый шаг Сделайте POST-вызов с моими метаданными изображений, и я верну URL (скажем, URL_PUT) Я должен сделать запрос PUT для этого URL_PUT (начиная с шага 1), поэтому моя функция интерфейса singleton для модемного интерфейса выглядит так: public interface […]