我正在使用改装和cookieJar
okBuilder.cookieJar(getCookieJar());
一切都很好,但有时我想清除饼干。我怎么能在改造或okhttp中做到这一点?
在JavaNetCookieJar中只有两种公共方法:
cookieJar.loadForRequest()
cookieJar.saveFromResponse();
答案 0 :(得分:1)
CookieHandler cookieHandler = new CookieManager(
new PersistentCookieStore(ctx), CookiePolicy.ACCEPT_ALL);
// init okhttp 3 logger
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
// init OkHttpClient
OkHttpClient httpClient = new OkHttpClient.Builder()
.cookieJar(new JavaNetCookieJar(cookieHandler))
.addInterceptor(logging)
.build();
您可以使用cookie处理程序进行进一步修改:)
答案 1 :(得分:0)
试试这个。
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
JavaNetCookieJar javaNetCookieJar = new JavaNetCookieJar(cookieManager);
OkHttpClient client = new OkHttpClient.Builder()
.cookieJar(javaNetCookieJar)
.build();
cookieManager.getCookieStore().removeAll();
答案 2 :(得分:0)
我可能会迟到这个问题的答案。仍然发布一个答案,可能会帮助那些被清除cookie的人。
如果您使用 android.webkit.CookieManager 的 CookieManager 。这是适合我的解决方案: kotlin版本:
var cookieManager: CookieManager = CookieManager.getInstance()
if (cookieManager.hasCookies()) {
// cookieManager.removeAllCookie() // deprecated
cookieManager.removeAllCookies(ValueCallback {
})
}
Java版:
CookieManager cookieManager = CookieManager.getInstance();
if (cookieManager.hasCookies()) {
cookieManager.removeAllCookie(); // or
cookieManager.removeAllCookies(new ValueCallback<Boolean>() {
@Override
public void onReceiveValue(Boolean aBoolean) {
}
});
}