GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - ncornette/OkCacheControl: Helper class to configure cache behaviour of OkHttp client and Retrofit

BranchesTags
Open more actions menu

Latest commit

 

History

24 Commits
24 Commits

Folders and files

NameName
Last commit message
Last commit date
gradle/wrapper
gradle/wrapper
 
 
okcache-control
okcache-control
 
 
.gitignore
.gitignore
 
 
.travis.yml
.travis.yml
 
 
LICENSE.txt
LICENSE.txt
 
 
README.md
README.md
 
 
build.gradle
build.gradle
 
 
gradle.properties
gradle.properties
 
 
gradlew
gradlew
 
 
gradlew.bat
gradlew.bat
 
 
settings.gradle
settings.gradle
 
 

Repository files navigation

OkCacheControl

Build Status Codacy Badge codecov Download

Helper class to configure cache behaviour of OkHttp client, also works with Retrofit for Android.

Release version is available on jcenter:

repositories {
    jcenter()
}
dependencies {
    compile 'com.ncornette.cache:okcache-control:1.1.1'
}

Usage

Initialize OkCacheControl with OkHttpClient.Builder(), then you can call 2 extra methods :

  • overrideServerCachePolicy(MaxAgeControl)
  • forceCacheWhenOffline(NetworkMonitor)
  okClient = OkCacheControl.on(new OkHttpClient.Builder())
          .overrideServerCachePolicy(30, MINUTES)
          .forceCacheWhenOffline(networkMonitor)
          .apply() // return to the OkHttpClient.Builder instance
          .cache(cache)
          .build();

Description

  • overrideServerCachePolicy(MaxAgeControl) will override server cache policy on responses with Cache-Control: max-age. Cache will be used until expiration even if network is available. Use it when server doesn't implement a cache policy!

  • forceCacheWhenOffline(NetworkMonitor) will force the use of cache when no network connection is available. When offline, cache will be used even if expired. for Android you can implement a NetworkMonitor that returns the value of ConnectivityManager.getActiveNetworkInfo().isConnected().

Call apply() to add interceptors to OkHttpClient.Builder and return the builder so you can continue to build OkHttpClient and add the cache.

Per request cache control

without Cache-Control header, cache is used until expiration, then network. (with forceCacheWhenOffline() expired cache will be used when offline)

  • add Cache-Control: no-cache to always use network, cache will be used only when offline.

  • add Cache-Control: no-store to not store response in cache.

License

Copyright 2016 Nicolas Cornette

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

Helper class to configure cache behaviour of OkHttp client and Retrofit

Resources

Readme
Apache-2.0 license
Activity

Stars

99 stars

Watchers

5 watching

Forks

7 forks
Report repository

Releases

Packages

Contributors

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.