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

Java 在Android应用程序发送的HTTP请求之间维护cookie,java,android,authentication,mobile,cookies,Java,Android,Authentication,Mobile,Cookies,我正在构建一个Android应用程序,在Android手机上提供网站的功能 人们需要登录,并且他们仍然使用cookies登录,允许他们使用自己的帐户进行操作。该网站的所有登录/认证代码都已经完成,我现在正在编写一个Android应用程序来完成同样的工作 我的问题是,如果Android应用程序向PHP服务器发送一个HTTP请求,而服务器反过来设置了一些cookie(以显示用户已登录),那么在以后向服务器发送的所有HTTP请求中,这些cookie是否会保留在Android应用程序上 或者,我是否需要

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

人们需要登录,并且他们仍然使用cookies登录,允许他们使用自己的帐户进行操作。该网站的所有登录/认证代码都已经完成,我现在正在编写一个Android应用程序来完成同样的工作

我的问题是,如果Android应用程序向PHP服务器发送一个HTTP请求,而服务器反过来设置了一些cookie(以显示用户已登录),那么在以后向服务器发送的所有HTTP请求中,这些cookie是否会保留在Android应用程序上


或者,我是否需要为android制定一个新的身份验证方案,例如,在用户登录时向应用程序传递一个特殊令牌,并且应用程序在将来所有请求对用户进行身份验证时提供此令牌?

一旦您登录应用程序,您应该将令牌保存在中。并且您可以在以后的每个Http请求中使用。即使重新启动应用程序,您也可以使用该令牌。因此,SharedPreFrence更适合于此。

您应该使用和来保存cookie

CookieManager将每个传入HTTP响应的Cookie存储到CookieStore中,并为每个传出HTTP请求检索Cookie。过期的HttpCookie应自行从此存储中删除


您可以在类中使用此选项。

登录后,将其放入共享引用中

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("userName", "Rock");
editor.putString("token", "token@123");
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
String username = sharedPreferences.getString("userName", "");
String token = sharedPreferences.getString("token", "");
共享参考资料中获取

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

但这意味着我必须在服务器上重新编程身份验证代码。如果有办法改用cookies,那就更好了。
get(URI-URI)检索与指定URI匹配的cookies
这是否意味着我需要发出两个HTTP请求,第一个是检查用户的登录信息是否正确,那么,第二步是获取Cookie?恐怕我没有直接与Cookie管理器合作过,但一位同事建议遵循HttpURLConnection文档中的模式