Per OkHttp3, un semplice accettare il tutto, non-persistenti CookieJar
implementazione può essere la seguente:
OkHttpClient client = new OkHttpClient.Builder()
.cookieJar(new CookieJar() {
private final HashMap<HttpUrl, List<Cookie>> cookieStore = new HashMap<>();
@Override
public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
cookieStore.put(url, cookies);
}
@Override
public List<Cookie> loadForRequest(HttpUrl url) {
List<Cookie> cookies = cookieStore.get(url);
return cookies != null ? cookies : new ArrayList<Cookie>();
}
})
.build();
O se si preferisce utilizzare java.net.CookieManager
, includere okhttp-urlconnection
nel progetto, che contiene JavaNetCookieJar
, un wrapper classe che i delegati a java.net.CookieHandler
:
dependencies {
compile "com.squareup.okhttp3:okhttp:3.0.0"
compile "com.squareup.okhttp3:okhttp-urlconnection:3.0.0"
}
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
OkHttpClient client = new OkHttpClient.Builder()
.cookieJar(new JavaNetCookieJar(cookieManager))
.build();
Importante da notare: CookieManager non è persistente. La prossima volta che avvierai la tua app, il cookie jar sarà vuoto. –
@JesseWilson, quindi come renderlo persistente? –
I cookie persistenti non sono ancora stati implementati. Se ti serve, devi creare il tuo CookieStore. –