2013-02-24 2 views
4

J'ai une application Android qui utilise les services web php. J'ai créé le login.php qui va valider le nom d'utilisateur, mot de passe envoyé à partir de l'application android. Une fois validé, une session est créée, comme suit:Comment utiliser la session pour travailler entre les services Web PHP et Android

session_start(); 
$_SESSION['userId'] = $id; 
$_SESSION['username'] = $username; 

Sur le Je côté client ceci:

HttpContext httpContext = new BasicHttpContext(); 
HttpResponse httpResponse = httpClient.execute(httpPost, httpContext); 
HttpEntity entity = httpResponse.getEntity(); 

Quand je debug, je vois que le httpReponse contient un PHPSESSID. Je sais que j'ai besoin de cette information pour la comparaison entre le session_id sur le serveur avant d'exécuter des requêtes.

Cependant, je ne sais pas comment récupérer ce "Set-Cookie" et l'envoyer au serveur pour comparaison? Un morceau de code ou un tutoriel sera extrêmement utile.

Merci

+0

Pourriez-vous poster la réponse qui est retournée? Ma meilleure estimation est que c'est juste un objet JSON. –

Répondre

1

Vous pouvez voir this réponse à une solution. HttpClient supporte les cookies par défaut et vous devrez les activer pour que les sessions php fonctionnent.

+0

Merci pour l'exemple. J'ai réussi à récupérer la valeur String du PHPSESSID. Maintenant, comment faire pour comparer cette valeur à la session ouverte sur le serveur? Y a-t-il du code PHP que j'ai besoin d'écrire? – mokko211

+0

Vous pouvez voir un exemple de base de sessions dans le manuel php http://php.net/manual/en/session.examples.basic.php. Qu'essayez-vous de faire exactement? Pouvez-vous partager une partie de votre code? – tix3

+0

Je veux m'assurer que l'identifiant session_id du côté serveur est identique à celui du client. Ainsi, par exemple - J'ai ce "d9fq1lrd8t0bn9fkfmgdc1oj36" récupéré en tant que cookie d'une réponse HTTPResponse. Maintenant, je vais utiliser cette chaîne et le comparer avec le session_id sur le serveur pour vérifier si l'utilisateur est connecté. Mais je n'arrive pas à comprendre comment le faire. – mokko211

Questions connexes