2011-09-14 121 views
2

我想開發一個應用程序,它從我的應用程序中獲取用戶名,名字,姓氏密碼發送到服務器(網站)。 如果該用戶不存在,則註冊該用戶,如果存在,則登錄該用戶。 所有這些工作都很完美。問題是我想給退出,因爲該cookie需要設置。餅乾和SharedPreferences之間的android差異

如何設置我沒有收到的cookie。或sharedpreference是好的?

我的代碼波紋管,

private boolean sendJsonToServer(String jsonStr) { 
     Log.d("sendJsonToServer", "called"); 
     boolean isDataSend = false; 
     try { 
      HttpClient client = new DefaultHttpClient(); 

      HttpPost request = new HttpPost(url); 

      List<NameValuePair> value = new ArrayList<NameValuePair>(); 

      value.add(new BasicNameValuePair("Name", jsonStr)); 

      UrlEncodedFormEntity entity = new UrlEncodedFormEntity(value); 

      request.setEntity(entity); 

      HttpResponse res = client.execute(request); 


      HttpEntity httpEntity = res.getEntity(); 
      String entityStr = convertStreamToString(httpEntity.getContent()); 

      JSONObject resObject = new JSONObject(entityStr); 
      resObject.getString("result"); 
      resObject.getString("token"); 

      Log.e("entity", "" + entityStr + " " + resObject.getString("result") 
          + " " + resObject.getString("token")); 

      Editor edit = prefUserDetails.edit(); 
      edit.clear(); 
      edit.putString(TOKEN, resObject.getString("token")); 
      edit.commit(); 

      String token = prefUserDetails.getString("token", ""); 
      Log.e("token from sharedPreference", token); 

        String[] status_String = res.getStatusLine().toString().trim() 
       .split(" "); 
      if (status_String[1].equals("200")) { 
       isDataSend = true; 
       Log.e("isSend", "ture"); 
      } 


     } catch (Exception e) { 
      System.out.println("Exp=" + e); 
     } 
     return isDataSend; 
    } 

我送的JSONObject(jsonStr)所組成的用戶名,性別所有細節到我的服務器爲signup.After立即登記其簽署和服務器響應給出了,一個是結果和另一個是令牌。我想將該令牌存儲到cookie中。

然後,如果我按下退出按鈕令牌應從cookie中刪除。 我在這裏使用上面的函數共享首選項,但我想要使用Cookie。

Plz給我一個方法。 謝謝

+0

爲了能夠註銷 - 用戶必須已經設置了(會話)cookie,當用戶登錄時會假設給定的cookie?但是你沒有cookie,所以你無法退出?那是對的嗎? – Tapirboy

+0

是的,我該怎麼辦? – Jyosna

+0

假設你不控制服務器(網站) - 檢查你是否可以調用URL來註銷 - 如果你幸運的話,它是一個帶有'get'操作的簡單URL。在我看來,你有一個工作會話cookie(你使用WebView?),據我所知,你的應用程序確實讓你在已登錄的頁面上移動時登錄。 – Tapirboy

回答

0

當我們談論cookie時,SharedPreference是一個不錯的選擇。因爲我認爲你會在cookie中存儲會話相關日期,並且此功能得到了共享首選項的很好支持。