2015-09-13 7 views
1

Я много искал для сохранения Cookies, но не смог найти подходящее решение.Android Persistent Cookie Store с HTTPUrlConnection

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

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

С наилучшими пожеланиями,

ответ

0

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

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() 
+0

Спасибо, но CookieSyncManager устарел в API21. – Rei

+0

Я добавляю в wokarround API21 статью, я ее не тестировал. Надеюсь, это поможет. –

+0

Большое спасибо. Кажется, что вы можете писать в постоянное хранилище с помощью CookieManager.flush(), но CookieManager не имеет метода для извлечения из стойкого хранилища? Я думаю, что, возможно, вам нужно написать хранилище Cookie самостоятельно, а CookieManager.flush() напишет его в CookieStore, когда вы определили CookieStore в инициализации CookieManager и вызвали метод вашего пользовательского CookieStore. Я докажу это позже. С наилучшими пожеланиями. – Rei