Постоянный магазин файлов cookie Android с HTTPUrlConnection

Сейчас я много искал сохранение файлов cookie, но не нашел хорошего решения.

Я использую HTTPUrlConnection для аутентификации на сервере и возвращаю файлы cookie. Я получаю их в CookieManager и могу загрузить их в новое соединение. Теперь я хочу сохранить эти файлы cookie, возможно, весь объект Cookiemanager. Я нашел решение, что вы можете сохранить файлы cookie, указав CookieStore, создав файл CookieManager.

Я нашел только старые решения (2-3 года), в которых говорится, что вам нужно создать свой собственный постоянный CookieStore, поскольку постоянный CookieStore не реализован в SDK? Это актуально? В SDK уже реализовано постоянное хранилище CookieStore или мне нужно самостоятельно сохранять файлы cookie с помощью SharedPreferences? Или у кого-нибудь есть лучшее решение для сохранения файлов cookie в настоящее время?

С уважением,


person Rei    schedule 13.09.2015    source источник


Ответы (1)


Кажется, на это есть ответ в некоторых других местах, я не пробовал, но вы можете получить подробное объяснение по этой ссылке:

http://blog.winfieldpeterson.com/2013/01/17/cookies-in-hybrid-android-apps/

public class YourApplication extends Application {
  public void onCreate() {
    super.onCreate();

    //Setup Cookie Manager and Persistence to disk
    CookieSyncManager.createInstance(this);
    CookieManager.getInstance().setAcceptCookie(true);
  }
}

public class MainActivity extends BaseActivity {
  public void onResume() {
    CookieSyncManager.getInstance().stopSync();
  }

   public void onPause() {
     CookieSyncManager.getInstance().sync();
   }
}

API21 устарел от использования CookieSyncManager, чтобы убедиться, что файлы cookie записываются на диск:

CookieManager.flush()
person Marcos Lois Bermúdez    schedule 13.09.2015
comment
Спасибо, но CookieSyncManager устарел в API21. - person Rei; 13.09.2015
comment
Я добавляю в статью описание API21, я его не тестировал. Надеюсь, это поможет. - person Marcos Lois Bermúdez; 15.09.2015
comment
Большое спасибо. Кажется, что вы можете писать в постоянное хранилище с помощью CookieManager.flush(), но у CookieManager нет метода извлечения из постоянного хранилища? Я думаю, возможно, вам нужно написать хранилище cookie самостоятельно, и CookieManager.flush() запишет его в CookieStore, когда вы определили CookieStore при инициализации CookieManager и вызываете метод вашего пользовательского CookieStore. Я докажу это позже. С наилучшими пожеланиями. - person Rei; 16.09.2015