我知道在okhttp3中基本上有两种保存cookie的方法: -
Using an Interceptor with Sharedpreferences
Or a CookieJar implementation with SharedPreferences.
然而,我不知道的是,这些操作中的哪一项更加昂贵
直观地,似乎调用通过SharedPreferences
的拦截器可能更加昂贵但我不确定CookieJar
是否通过{{1}会有任何不同。
谢谢!
答案 0 :(得分:2)
使用cookies,您需要在每个入站和出站请求中查看它们,这正是拦截器的作用。但是,请记住,与仅与https,域,到期相关时,cookie可能非常复杂。从这个意义上说,CookieJar实际上可能会更慢,因为它会为你处理一切,但它非常值得。
以下是使用带有OkHttp 3
的cookie jar的示例import okhttp3.JavaNetCookieJar;
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
JavaNetCookieJar cookieJar = new JavaNetCookieJar(cookieManager);
OkHttpClient client = new OkHttpClient.Builder().cookieJar(cookieJar).build();
答案 1 :(得分:1)
性能差异可以忽略不计。您应该使用CookieJar,因为它可以让OkHttp为您完成更多工作。