Android HttpClient les cookies persistants
Mise à JOUR: Cette question et ses réponses ne doivent plus être recommandé à tous ceux qui lisent ceci. Android n'est plus recommande HttpClient (lire: obsolète), et recommande plutôt d'HttpUrlConnection. Un bon exemple de bibliothèques à utiliser maintenant, sont Rénovation et OkHttp. Dans le contexte de cette question, des cookies peuvent être enregistrés, stockés et livrés avec les requêtes suivantes. Ce n'est pas gérée de manière transparente. Avec OkHttp vous pouvez utiliser des Séparateurs d'.
J'ai une application Android avec plusieurs intentions.
La première intention est un formulaire de connexion, à la suite des intentions de compter sur les cookies fournis par le processus de connexion.
Le problème que je rencontre est que les cookies ne semble pas être la persistance à travers les intentions. Je suis la création de nouveaux HttpClients dans chaque intention (j'ai d'abord essayé de Parcelable transmettre les à travers à chaque intention, qui n'a pas bien fonctionné).
Quelqu'un aurait-il des conseils pour la fabrication de biscuits, persistent à travers les intentions?
- D'ailleurs, le plus proche que j'ai trouvé est d'écrire les cookiestore partagés préf.
- Pour mettre fin à cette discussion, j'ai réussi dans ma quête en créant mon propre HttpClient classe avec des méthodes pour définir et obtenir son CookieStore. Je l'ai fait de sorte que lors de l'initialisation du client, il extrait automatiquement tous les cookies de SharedPreferences. Aussi, avant chaque fois qu'une nouvelle Intention de la création ou de celui en cours est terminé, tous les témoins sont copiés dans SharedPreferences.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire ce que @Emmanuel a suggéré ou vous pouvez passer à la BasicHttpContext entre les HttpClients vous êtes en train de créer.
Exemple de l'Utilisation de contexte et les cookies, code complet ici
Ne pas créer de nouveaux HttpClients; cela permettra d'effacer les cookies. Réutiliser une seule HttpClient.
Faire de votre httpClient une classe singleton.
définir HttpClient dans la classe d'Application, et de l'utiliser dans l'activité.
en Application
de l'Activité