【问题标题】:How to use session to work between php webservices and android如何使用会话在 php webservices 和 android 之间工作
【发布时间】:2013-02-24 23:05:46
【问题描述】:

我有一个使用 php webservices 的 android 应用程序。我创建了 login.php,它将验证从 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”并将其发送到服务器端进行比较?一段代码或教程将非常有帮助。

谢谢

【问题讨论】:

  • 您介意发布返回的响应吗?我最好的猜测是这只是一个 JSON 对象。

标签: php android web-services session


【解决方案1】:

您可以查看this 的答案以获得解决方案。 HttpClient 默认支持 cookie,您必须启用它们才能使 php 会话正常工作。

【讨论】:

  • 感谢您的示例。我设法检索了 PHPSESSID 的字符串值。现在,如何将此值与服务器上打开的会话进行比较?是否有一些我需要编写的 php 代码?
  • 您可以在 php 手册php.net/manual/en/session.examples.basic.php 中看到一个基本的会话示例。你到底想做什么?你能分享一些你的代码吗?
  • 我想确定server_side上打开的session_id是否和client_side一样。因此,例如 - 我将这个“d9fq1lrd8t0bn9fkfmgdc1oj36”作为 cookie 从 HTTPResponse 中检索出来。现在,我将使用此字符串并将其与服务器上的 session_id 进行比较,以验证用户是否已登录。但我似乎无法弄清楚该怎么做。
猜你喜欢
  • 2015-03-14
  • 1970-01-01
  • 2017-02-05
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多