Как вызвать API в автономном режиме в android? - PullRequest
0 голосов
/ 29 апреля 2020

Я успешно вызываю API, когда доступно соединение inte rnet. Как вызвать тот же API, когда нет соединения inte rnet?

В принципе, я хочу знать онлайн и автономная синхронизация? Где пользователь может добавить данные, но они будут отправлены на сервер, только если доступно inte rnet. Как мне это сделать?

1 Ответ

0 голосов
/ 29 апреля 2020

Если вы используете службу REST, вы можете прочитать эту статью о том, как использовать управление в автономном режиме с помощью Retrofit . Это разговор о клиенте, реализованном с использованием Retrofit. Если вы используете Volley, вы можете использовать эту статью, чтобы увидеть, как реализовать систему кеширования на основе OkHttp, которая также используется в Volley.

Я сообщу здесь часть кода. Прочитайте статью, чтобы получить весь код и адаптировать его под свои нужды.

// Add all interceptors you want (headers, URL, logging, stetho logs)
OkHttpClient.Builder httpClient = new OkHttpClient.Builder()
  .addInterceptor(provideOfflineCacheInterceptor())
  .addNetworkInterceptor(provideCacheInterceptor())
  .cache(provideCache());

...

private Interceptor provideOfflineCacheInterceptor() {
        return chain -> {
            Request request = chain.request();

            if (!isConnected()) {
                CacheControl cacheControl = new CacheControl.Builder()
                        .maxStale(7, TimeUnit.DAYS)
                        .build();

                request = request.newBuilder()
                        .removeHeader(HEADER_PRAGMA)
                        .removeHeader(HEADER_CACHE_CONTROL)
                        .cacheControl(cacheControl)
                        .build();
            }

            return chain.proceed(request);
        };
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...