blob: 27013ba59a2a11130e6002b757a3d0f18bc96c33 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
package cgeo.geocaching.network;
import ch.boye.httpclientandroidlib.client.CookieStore;
import ch.boye.httpclientandroidlib.cookie.Cookie;
import ch.boye.httpclientandroidlib.impl.client.BasicCookieStore;
import ch.boye.httpclientandroidlib.impl.cookie.BasicClientCookie;
import org.apache.commons.lang3.StringUtils;
public abstract class Cookies {
private static boolean cookieStoreRestored = false;
final static CookieStore cookieStore = new BasicCookieStore();
public static void restoreCookieStore(final String oldCookies) {
if (!cookieStoreRestored) {
clearCookies();
if (oldCookies != null) {
for (final String cookie : StringUtils.split(oldCookies, ';')) {
final String[] split = StringUtils.split(cookie, "=", 3);
if (split.length == 3) {
final BasicClientCookie newCookie = new BasicClientCookie(split[0], split[1]);
newCookie.setDomain(split[2]);
cookieStore.addCookie(newCookie);
}
}
}
cookieStoreRestored = true;
}
}
public static String dumpCookieStore() {
final StringBuilder cookies = new StringBuilder();
for (final Cookie cookie : cookieStore.getCookies()) {
cookies.append(cookie.getName());
cookies.append('=');
cookies.append(cookie.getValue());
cookies.append('=');
cookies.append(cookie.getDomain());
cookies.append(';');
}
return cookies.toString();
}
public static void clearCookies() {
cookieStore.clear();
}
}
|