尝试保存cookie的值以将设备存储在商店中,但不是每次我再次启动应用程序都会返回null值,我不知道为什么我们不存储cookie的值。
final HttpUriRequest request = new HttpGet(uri);
request.setHeader("User-Agent", Sonora.USER_AGENT);
try {
DefaultHttpClient client = new DefaultHttpClient();
if(cookieValue != null) {
Log.d(TAG,"COOKIE RECEBIDO E ARMAZENADO");
request.setHeader("Cookie", cookieName + "=" + cookieValue);
}
HttpResponse resp = client.execute(request);
// Check if server response is valid
StatusLine status = resp.getStatusLine();
if (status.getStatusCode() != Sonora.HTTP_STATUS_OK) {
Log.e(TAG, "HTTP error, invalid server status code: " + resp.getStatusLine());
return;
}
final List<Cookie> cookies = client.getCookieStore().getCookies();
int count = cookies.size();
for( int i = 0; i < count; i++ ) {
final Cookie c = cookies.get(i);
if ( c.getName().compareTo( cookieName ) == 0 ) {
cookieValue = c.getValue();
break;
}
}
} catch (IOException e) {
Log.e(TAG, "IOError error", e);
}
答案 0 :(得分:3)
Android CookieStore类不是持久性的 - 因此您的Cookie不会保存在任何地方,并且会在您的应用停止时丢失。
您可以使用Android异步Http客户端(http://loopj.com/android-async-http/),该客户端在您的应用的SharedPreferences中支持可选的持久性Cookie存储。或者您可以按照How to make persistent Cookies with a DefaultHttpClient in Android?实现自己的持久性cookie类。
答案 1 :(得分:0)
如果您希望在重新启动应用程序后保存cookie,则需要将其写入文件或使用SharedPreferences之类的东西来存储它。您可以查看此链接以使用SharedPreferences(这更容易): http://developer.android.com/reference/android/content/SharedPreferences.html