Сбой Android setcookie и setAcceptCookie в Android 4.3 - PullRequest
0 голосов
/ 14 мая 2018

Мне нужно установить cookie в моем приложении, поэтому я использовал метод API setAcceptCookie и setCookie в своем коде. Это работает хорошо, когда SDK версии> 19, но в SDK версии 18 мое приложение зависло.

Ниже мой код. Если я удаляю это для вызова метода, он работает нормально, так как я могу это сделать?

try {
        final CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);
        for (final String cookie : cookies) {
            Log.d(">>>>>>> inject Cookie into : " + url  + "  ==> " + cookie);
            cookieManager.setCookie(url, cookie);
        }
    } catch (Exception e) {

    }

Выход Logcat:

05-10 16:51:35.351 25280-25336/? I/dalvikvm: "AsyncBackgroundTask #1" prio=5 tid=16 RUNNABLE
05-10 16:51:35.351 25280-25336/? I/dalvikvm:   | group="main" sCount=0 dsCount=0 obj=0x41e2d8d0 self=0x5fb82498
05-10 16:51:35.351 25280-25336/? I/dalvikvm:   | sysTid=25336 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1578780720
05-10 16:51:35.351 25280-25336/? I/dalvikvm:   | state=R schedstat=( 289179937 1233023039 1600 ) utm=23 stm=5 core=3
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at android.webkit.CookieManagerClassic.nativeSetAcceptCookie(Native Method)
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at android.webkit.CookieManagerClassic.setAcceptCookie(CookieManagerClassic.java:44)
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at coj.execute(RealCall.java:69)
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at XXXX
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at xxxxx
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-10 16:51:35.351 25280-25336/? I/dalvikvm:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-10 16:51:35.361 25280-25336/? I/dalvikvm:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-10 16:51:35.361 25280-25336/? I/dalvikvm:     at java.lang.Thread.run(Thread.java:841)

1 Ответ

0 голосов
/ 14 мая 2018

обязательно используйте CookieSyncManager

    CookieSyncManager cookieSyncMngr = CookieSyncManager.createInstance(context);
    cookieSyncMngr.startSync();
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
    cookieManager.setCookie(url, cookie);
    cookieSyncMngr.stopSync();
    cookieSyncMngr.sync();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...