2013-03-09 46 views
1

我有一個Android客戶端從應用程序引擎servlet接收JSON數據。我也能夠獲得身份驗證cookie。現在,我想讓用戶從請求到servlet。應用引擎Java安卓獲取用戶屬性

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); 

我設置身份驗證的cookie在HTTPGET請求的頭。我相信這個cookie必須用來識別服務器上的用戶。但是在servlet中,它表示用戶對象爲空。

如何從Android的請求發送到應用程序引擎來獲得當前用戶。我必須在這裏錯過一些東西。

+0

檢查是否有幫助:http://stackoverflow.com/questions/3858593/android-http-get-session-cookie – Romin 2013-03-10 15:38:17

+0

在Android上,您將cookie設置爲'null'? – 2013-03-10 16:06:32

+0

在Android上,我將SACSID cookie發送到服務器。我可以獲取該cookie並將其打印到控制檯。我無法弄清楚如何識別servlet中的用戶。雖然同一個servlet在通過瀏覽器訪問時確定用戶身份。 – akshaybhasme 2013-03-11 07:02:13

回答

0

好吧,我解決了這個通過創建一個名爲MYUSER我自己的數據存儲區實體,發送數據存儲區生成的ID註冊過程中的Android客戶端,並用這個ID來識別用戶的所有進一步的請求。我沒有使用GAE的UserService。