【发布时间】: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 引擎发送请求以获取当前用户。我一定在这里遗漏了什么。
【问题讨论】:
-
在 Android 上,您将 cookie 设置为
null? -
在 Android 上,我将 SACSID cookie 发送到服务器。我可以获取该 cookie 并将其打印到控制台。我不知道如何在 servlet 中识别用户。虽然同一个 servlet 在通过浏览器访问时确实会识别用户。
标签: android google-app-engine http-get setcookie