【问题标题】:App engine java Android get user attribute应用引擎java Android获取用户属性
【发布时间】:2013-02-24 22:04:50
【问题描述】:

我有一个从应用引擎 servlet 接收 JSON 数据的 android 客户端。我还能够获得身份验证 cookie。现在,我想从请求中获取用户到 servlet。

Servlet 代码:

   `User user = (User) req.getAttribute("user");
    String cookie = (String) req.getHeader("Cookie");
    if(user == null){
        UserService userService = UserServiceFactory.getUserService();
        user = userService.getCurrentUser();
    }`

Android 帖子:

HttpGet get = new HttpGet(Setup.PROD_URL+"/viewselectedclass");
    SharedPreferences prefs = Util.getSharedPreferences(getBaseContext());
    String cookie = prefs.getString(Util.AUTH_COOKIE, null);
    get.setHeader("Cookie", cookie);
    client = new DefaultHttpClient();
    HttpResponse r = client.execute(get);

我在 HttpGet 请求的标头中设置了 auth cookie。我相信这个cookie必须用于识别服务器上的用户。但在 servlet 中,它说用户对象为空。

如何从 Android 向 App 引擎发送请求以获取当前用户。我一定在这里遗漏了什么。

【问题讨论】:

  • 检查是否有帮助:stackoverflow.com/questions/3858593/…
  • 在 Android 上,您将 cookie 设置为 null?
  • 在 Android 上,我将 SACSID cookie 发送到服务器。我可以获取该 cookie 并将其打印到控制台。我不知道如何在 servlet 中识别用户。虽然同一个 servlet 在通过浏览器访问时确实会识别用户。

标签: android google-app-engine http-get setcookie


【解决方案1】:

好的,我通过创建自己的名为 MyUser 的数据存储实体解决了这个问题,将数据存储在注册期间生成的 ID 发送到 android 客户端,并使用此 ID 在所有进一步的请求中识别用户。我根本没有使用 GAE 的 UserService。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    相关资源
    最近更新 更多