A persistent CookieJar implementation for OkHttp 3 based on SharedPreferences.
If you're looking for a OkHttp 2/HTTPUrlConnection persistent CookieStore it can be found at [this Gist] 1.
It will be uploaded to JCenter as soon as possible. For now you can clone this repo.
Create an instance of PersistentCookieJar passing a CookieCache and a CookiePersistor:
ClearableCookieJar cookieJar =
new PersistentCookieJar(new SetCookieCache(), new SharedPrefsCookiePersistor(context));Then just add the CookieJar when building your OkHttp client:
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.cookieJar(cookieJar)
.build();This is a really simple library but here are some of the things that it provides:
-
Possibility to clear the jar:
PersistentCookieJarimplementsClearableCookieJarinterface that declares aclear()method for removing all cookies from the jar. -
Decoupled and extensible:
CookieCacheandCookiePersitorare interfaces so you can provide your own implementation for each one.CookieCacherepresents an in-memory cookie storage.SetCookieCacheis the provided implementation that uses a Set to store the Cookies.CookiePersistorrepresents a persistent storage.SharedPrefsCookiePersistoris the provided implementation that uses a SharedPreferences to persist the Cookies.
-
Thread-safe:
PersistentCookieJarpublic methods are synchronized so there is no need to worry about threading if you need to implement aCookieCacheor aCookiePersistor.
Copyright 2016 Francisco José Montiel Navarro
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.