2011-05-03 4 views
2

내 안드로이드 애플 리케이션에서 나는 애플 리케이션이 종료하더라도 적어도 30 일 동안 세션 ID를 유지하고 싶습니다. DefaultHttpClient을 사용하고 있습니다. 내가 서버에 첫 번째 요청을 보내면 세션 ID가 반환되고 다른 모든 요청에는이 반환 된 세션 ID를 사용해야합니다.안드로이드 쿠키 저장

답변

2

Shared Preference을 설정하여 세션 ID를 유지할 수 있습니다. 두 번째 기본 설정을 사용하면 마지막 연결 날짜를 저장할 수 있으므로 30 일 동안 사용하지 않으면 세션 ID를 다시 설정할 수 있습니다.

0

오른쪽 U 그러나 쿠키가 유 다시 같은 자격 증명으로 다시 재 로그인 할 수 만료되면, 저장 될 필요가 다른 값이 사용자가 죽일 수 becoz 다른 현명한 유 (지속성 쿠키를 사용할 수있다, SharedPref에 세션 ID를 저장할 수 있습니다 코드 조각 아래의 애플 리케이션 언제는) 만 사용자가 (사용자가 응용 프로그램의 프로세스를 종료하지)

 private static CookieStore cookieStore = new BasicCookieStore(); 


     InputStream is = null; 
     try { 

      final DefaultHttpClient httpClient = new DefaultHttpClient(); 
      httpClient.getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true); 

      Log.d("vipin", url.toString()); 

      HttpPost httpPost = new HttpPost(url); 
      /** maintain session if logged in */ 
      if (SouqApplication.getBooleanValue(Constants.IS_LOGGED_IN)) 
       httpPost.setHeader(Constants.PHPSESSID, SouqApplication.getStringValue(Constants.SESSION_ID)); 
      //httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded"); 
      HttpContext localContext = new BasicHttpContext(); 
      localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); 
      httpClient.setCookieStore(cookieStore); 
      HttpResponse httpResponse = httpClient.execute(httpPost, localContext); 
      setCookies(httpClient.getCookieStore().getCookies()); 
      HttpEntity httpEntity = httpResponse.getEntity(); 
      String errorHandlling = EntityUtils.toString(httpEntity); 

      return errorHandlling ; 

     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
      return null; 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
      return null; 
     } catch (IOException e) { 
      e.printStackTrace(); 
      return null; 
     } 

그리고 더 나은 접근 방식 U가 PersistentCookieStore 으로 준비 케이크 인기 라이브러리 영구 쿠키 저장 장치를 사용할 수있는 응용 프로그램을 사용까지입니다 http://loopj.com/android-async-http/