我创建了一个使用 CookieJar 的简单项目。现在我试图了解 saveFromResponse 方法何时起作用。但我在我的日志中看到 loadForRequest 工作正常,但我没有看到 saveFromResponse 日志。为什么?这种方法在什么时候有效?如果我们使用 cookie,我们是否可以只使用拦截方法,或者我们可能有使用 CookieJar 的特殊情况?
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(new ReceivedCookiesInterceptor())
.cookieJar(new CookieJar() {
private final HashMap<HttpUrl, List<Cookie>> cookieStore = new HashMap<>();
@Override
public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
Log.d(TAG,"saveFromResponse");
cookieStore.put(url, cookies);
}
@Override
public List<Cookie> loadForRequest(HttpUrl url) {
Log.d(TAG,"loadForRequest");
List<Cookie> cookies = cookieStore.get(url);
return cookies != null ? cookies : new ArrayList<Cookie>();
}
})
.build();
Request request = new Request.Builder()
.url("http://www.publicobject.com/helloworld.txt")
.build();
Response response = client.newCall(request).execute();
response.body().close();