Articles of retrofit okhttp

SocketTimeoutException в дооснащении

Я пытаюсь отправить запрос POST на сервер для извлечения данных, но иногда происходит SocketTimeoutException ! Я использовал Ok3Client для его решения, но я столкнулся с тем же Исключением. Как я могу его решить? Мой код ниже public void getNormalLogin() { if (mProgressDialog == null) { mProgressDialog = ViewUtils.createProgressDialog(mActivity); mProgressDialog.show(); } else { mProgressDialog.show(); } if […]

Как обрабатывать разбиение на страницы в модифицированном виде

Я создаю приложение, использующее модификацию. Все работает плавно, но я беспокоюсь о размере моих запросов API и хотел бы разделить их, используя разбивку на страницы. Какова была бы лучшая стратегия для автоматической работы с API через Retrofit, чтобы все доступные данные загружались по умолчанию?

Android OkHttp, обновленный токен обновления

Сценарий : я использую OkHttp / Retrofit для доступа к веб-службе: одновременно отправляются несколько HTTP-запросов. В какой-то момент токен auth истекает, и несколько запросов получат ответ 401. Проблема . В моей первой реализации я использую перехватчик (здесь упрощенный), и каждый поток пытается обновить токен. Это приводит к беспорядку. public class SignedRequestInterceptor implements Interceptor { @Override […]

NoSuchMethodError, если я использую okhttp 2.0 и последнюю модификацию?

Не удалось найти метод com.squareup.okhttp.OkHttpClient.open, ссылающийся на метод retrofit.client.OkClient.openConnection. Ниже моя конфигурация gradle compile 'com.squareup.okhttp:okhttp:+' compile 'com.squareup.okhttp:okhttp-urlconnection:+' compile 'com.squareup.retrofit:retrofit:+'

Retrofit 2.0b2: Как получить InputStream из ответа?

Я использую Retrofit 2.0b2. Получив ответ, я попытался получить InputStream из ответа: Response<JsonNode> response = call.execute(); InputStream is = response.raw().body().byteStream(); Но приложение продолжает бросать: java.lang.IllegalStateException: Cannot read raw response body of a converted body. at retrofit.OkHttpCall$NoContentResponseBody.source(OkHttpCall.java:184) at com.squareup.okhttp.ResponseBody.byteStream(ResponseBody.java:43) at … Несмотря на то, что ответ вернулся правильно. Что я здесь делаю неправильно?

Зачем использовать Retrofit, когда у нас есть OkHttp

С OkHttp мы можем сделать HTTP-запрос, а затем получить ответ от сервера OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); Затем с помощью Gson lib конвертировать ответ на требуемый объект. Это из Square / OkHttp doc: Его API запросов / ответов разработан с плавными строителями и неизменностью. […]

Retrofit + okhttp: Получить GZIPInputStream

У меня возникла проблема, когда я активирую gzip на WS, используя модификацию 1.4.1 и okhttp 1.3.0. RequestInterceptor requestInterceptor = new RequestInterceptor() { @Override public void intercept(RequestFacade request) { request.addHeader("content-type", "application/json"); request.addHeader("accept-encoding", "gzip"); // Here is the problem } }; RestAdapter restAdapter = new RestAdapter.Builder() .setEndpoint(Constants.HOST) .setLogLevel(RestAdapter.LogLevel.FULL) .setRequestInterceptor(requestInterceptor) .build(); Если я прокомментирую следующую строку request.addHeader("accept-encoding", "gzip"); […]

Дооснащение "IllegalStateException: уже выполнено"

У меня есть сетевой дооснащение, которое id запускается каждые 5 секунд. Мой текущий код: Handler h = new Handler(); int delay = 5000; //milliseconds h.postDelayed(new Runnable() { public void run() { call.enqueue(new Callback<ApiResponse>() { @Override public void onResponse(Response<ApiResponse> response) { Log.d("api", "response: " + response.body().getPosition().getLatitude().toString()); } @Override public void onFailure(Throwable t) { } }); h.postDelayed(this, […]

Дооснащение – ответы на перехват глобально

Я хотел бы перехватить все ответы, полученные от модифицированного движка, и проверить код ошибки HTTP, например ошибку 403. Я знаю, что могу использовать обратный вызов сбоя (RetrofitError error) каждого запроса и проверять наличие 403, но я бы хотел, чтобы глобальный ответ был завершен. Я вижу, что перехват запросов возможен, но я не вижу аналогичного варианта […]

Модернизация ETAG и кэширование

Есть ли правильное объяснение того, как добавить кеширование и поддержку ETAG / If-None-Match для дооснащения + OkHttp? Я изо всех сил пытаюсь добавить поддержку Etag на 2 проекта, и сначала я подозревал, что может быть проблема с заголовками HTTP, у другого проекта все правильно настроено, и кеширование все еще не работает должным образом. Ниже приводятся […]