我在 androidapp 中使用 cookiemanager。 我调用了 cookiemanager 的一个实例并尝试使用 cookiemanager.setcookie(url,string) 设置 cookie。
但是我的 cookiemanager 实例没有设置任何 cookie。我尝试检查 SO 上的每个答案,但无法解决问题。任何有想法的人都会很有帮助。
public void syncCookieStoreToWebView() {
PersistentCookieStore myCookieStore = ReferenceHolder.getCookieStore();
List<Cookie> cookies = myCookieStore.getCookies();
final CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(getActivity());
CookieSyncManager.getInstance().startSync();
final CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
if (! cookies.isEmpty()){
//sync all the cookies in the httpclient with the webview by generating cookie string
for (Cookie cookie : cookies){
Cookie sessionInfo = cookie;
String cookieString = sessionInfo.getName() + "=" + sessionInfo.getValue() + "; domain=" + sessionInfo.getDomain();
cookieManager.setCookie(ReferenceHolder.BASE_URL, cookieString);
cookieSyncManager.sync();
}
cookieSyncManager.sync();
System.out.println("COOKIEMAN" + cookieManager.getCookie(ReferenceHolder.BASE_URL));
}
}
最佳答案
cookie 不能包含分号,因为分号在cookie 字符串中是分隔符。如果你想要这个,请先编码。
关于java - cookiemanager 中的 setcookie 不适用于 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30316114/