2013-02-24 4 views
4

У меня есть приложение для Android, которое использует php webservices. Я создал login.php, который будет проверять имя пользователя, пароль, отправленный из приложения Android. После проверки, сеанс создается такая следующим образом:Как использовать сеанс для работы между php webservices и android

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

На клиентской стороне у меня есть это:

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

Когда я отладки, я вижу, что httpReponse содержит PHPSESSID. Я знаю, что мне понадобится эта информация для сравнения session_id на стороне сервера перед выполнением любых запросов.

Однако я не знаю, как получить это «Set-Cookie» и отправить его на серверную сторону для сравнения? Кусок кода или учебник будут чрезвычайно полезны.

Спасибо

+0

Не могли бы вы отправить ответ, который будет возвращен? Мое лучшее предположение - это просто объект JSON. –

ответ

1

Вы можете увидеть this ответ для решения. HttpClient поддерживает файлы cookie по умолчанию, и вам нужно будет включить их, чтобы работа сессии php.

+0

Спасибо за пример. Мне удалось получить значение String для PHPSESSID. Теперь, как мне сделать, чтобы сравнить это значение с открытым сеансом на сервере? Есть ли какой-нибудь PHP-код, который мне нужно написать? – mokko211

+0

Вы можете увидеть базовый пример сеансов в php manual http://php.net/manual/en/session.examples.basic.php. Что вы пытаетесь сделать точно? Вы можете поделиться своим кодом? – tix3

+0

Я хочу убедиться, что open session_id на server_side такой же, как client_side. Так, например, у меня есть этот «d9fq1lrd8t0bn9fkfmgdc1oj36», полученный как файл cookie из HTTPResponse. Теперь я буду использовать эту строку и сравнить ее с session_id на сервере, чтобы проверить, вошел ли пользователь в систему. Но я не могу понять, как это сделать. – mokko211

Смежные вопросы