2012-03-31 2 views
2

Je travaille sur une application qui doit se connecter à un site Web (via http://......?password=xyz). J'utilise DefaultHttpClient pour cela. Avec la réponse GET, le site Web envoie un cookie, que je veux stocker pour d'autres demandes POST.Android: Handle Cookie de HTTP Get-Request

Mon problème est que client.getCookieStore().getCookies() reçoit toujours une liste vide de cookies.

Si j'ouvre http://www.google.com (insted de mon site Web destiné), je reçois les biscuits correctement, mais le site, je travaille avec, semble envoyer le cookie d'une autre manière (c'est une liste de diffusion Mailman page modératrice)

Je peux voir le cookie correspondant dans le gestionnaire de cookies de Firefox, mais pas dans le panneau/cookie du réseau Firebug (pourquoi?). InternetExplorer HttpWatchProfessional cependant montre le cookie lors de l'enregistrement du trafic ....

Il y a une petite différence, j'ai observé entre les cookies www.google.com envoyé et mon site cible: Dans HttpWatchProfessional, ces cookies de google sont marqués comme "Direction: envoyé", tandis que les cookies de mon site sont marqués "Direction: Reçu". (comment les cookies google peuvent-ils être envoyés, alors que j'ai effacé le cache du navigateur/cookie juste avant?)

Quelqu'un peut-il m'expliquer la différence?

Mon code est le suivant:

DefaultHttpClient client = new DefaultHttpClient(); 
HttpGet httpGet = new HttpGet(url); 
HttpResponse execute = client.execute(httpGet); 
List<Cookie> cookies = client.getCookieStore().getCookies(); 
+0

double possible de [Accepter tous les cookies via HttpClient] (http://stackoverflow.com/questions/8279970/accept-all-cookies-via-httpclient) – dldnh

Répondre

3

Après une enquête plus approfondie, j'ai découvert que le cookie a été reçu, mais en réalité rejeté par le httpclient, en raison d'un chemin le cookie, qui diffère de celle de la appelé URL.

Je trouve la solution à: https://stackoverflow.com/a/8280340/1083345