在Android应用程序发送的HTTP请求之间维护cookie

时间:2012-10-01 09:13:27

标签: java android authentication mobile cookies

我正在构建一个Android应用程序来提供Android手机网站的功能。

人们需要登录,他们仍然使用cookie登录,允许他们在自己的帐户下进行操作。已经为网站完成了登录/身份验证的所有代码,我现在正在编写一个Android应用程序来执行相同的操作。

我的问题是,如果Android应用程序向PHP服务器发送HTTP请求,并且服务器返回设置了一些cookie(以显示用户已登录),那么这些cookie是否会在Android应用程序中保持设置状态未来的HTTP请求到服务器?

或者,我是否需要为Android制定新的身份验证方案,例如在用户登录时将特殊令牌传递给应用程序,以及在将来验证用户的所有请求期间提供此令牌的应用程序?

3 个答案:

答案 0 :(得分:3)

一旦你在App中登录,你应该在SharedPrefrences中保存令牌。你可以在以后的每个Http请求中使用。即使应用程序是重启你也有那个令牌。所以SharedPredPrefrence对此更好。

答案 1 :(得分:3)

您应该使用CookieManagerCookieStore来保存Cookie。

  

CookieManager会将每个传入的HTTP响应的cookie存储到CookieStore中,并为每个传出的HTTP请求检索cookie。应该从这个存储中删除过期的HttpCookies。

您可以将其与HttpURLConnection类一起使用。

答案 2 :(得分:1)

一旦您登录 SharedPreferences

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("userName", "Rock");
editor.putString("token", "token@123");

SharedPreferences

获取
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
String username = sharedPreferences.getString("userName", "");
String token = sharedPreferences.getString("token", "");