2011-09-14 91 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中存储会话相关日期,并且此功能得到了共享首选项的很好支持。