cookie相关类:
cookie相关类:
android.webkit.CookieSyncManager//deprecated,CookieSyncManager extends WebSyncManager
android.webkit.CookieManager//abstract
java.net.CookieManager//CookieManager extends CookieHandler
java.net.CookieHandler//abstract
java.net.CookieStore//interface
java.net.CookiePolicy//interface
1、webkit.CookieSyncManager
webkit.CookieSyncManager:
//android.webkit
//过时,手动同步cookie
CookieSyncManager cookieSyncManagerWeb = CookieSyncManager.createInstance(this);
cookieSyncManagerWeb.sync();//同步cooike
cookieSyncManagerWeb.resetSync();
cookieSyncManagerWeb.startSync();
cookieSyncManagerWeb.stopSync();
CookieSyncManager syncManager = CookieSyncManager.getInstance();
//activity中的oncreate()方法中注册cookiemanager
CookieSyncManager.createInstance(this);
2、webkit.CookieManager:
webkit.CookieManager:
//android.webkit
//推荐使用,自动同步cooike
android.webkit.CookieManager cookieManagerWeb = android.webkit.CookieManager.getInstance();
cookieManagerWeb.removeAllCookie();//清除cooike
cookieManagerWeb.acceptCookie();
cookieManagerWeb.removeSessionCookie();
cookieManagerWeb.flush();
cookieManagerWeb.removeExpiredCookie();
cookieManagerWeb.setAcceptCookie(true);
boolean hasCookies = cookieManagerWeb.hasCookies();
String cookie = cookieManagerWeb.getCookie(url);
cookieManagerWeb.setCookie(url, cookie);
网络请求类中设置和获取cookie的方法
//android.webkit
private String getCookie() {
android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();
String cookie = cookieManager.getCookie("cookie");
if (cookie != null) {
return cookie;
} else {
return "";
}
}
//android.webkit
private void setCookie(String cookie) {
android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();
cookieManager.setCookie("cookie", cookie);
}
/**
* 存储cookie
*/
protected void setCookies(Map<String, List<String>> headerFields) {
if (null == headerFields) {
return;
}
List<String> cookies = headerFields.get("Cookie");
if (null == cookies) {
return;
}
for (String cookie : cookies) {
setCookie(cookie);
}
}
//
connection = (HttpURLConnection) requestUrl.openConnection();
connection.setRequestProperty("Cookie", getCookie());//获取cooike
setCookies(connection.getHeaderFields());//设置cooike
3、net.CookieManager:
net.CookieManager:
//java.net
java.net.CookieManager cookieManagerNet = new java.net.CookieManager();
java.net.CookieHandler.setDefault(cookieManagerNet);
CookieHandler cookieHandler = CookieHandler.getDefault();
CookieStore cookieStore = cookieManagerNet.getCookieStore();
cookieManagerNet.setCookiePolicy(new CookiePolicy() {
@Override
public boolean shouldAccept(URI uri, HttpCookie cookie) {
return false;
}
});
try {
URI uri = new URI(url);
Map<String, List<String>> stringListMap = new HashMap<>();
cookieManagerNet.put(uri, stringListMap);
cookieManagerNet.get(uri, stringListMap);
} catch (URISyntaxException | IOException e) {
e.printStackTrace();
}
WebView清除cooike及缓存
//WebView清除cooike及缓存
WebView webView = new WebView(this);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.clearHistory();
webView.clearFormData();
webView.clearCache(true);
CookieSyncManager.createInstance(webView.getContext());
//CookieSyncManager清除还需要手动同步
CookieSyncManager.getInstance().sync();
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
cookieManager.removeAllCookie();
public static void synCookies(Context context, String url) {
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setCookie(url, "uid=1243432");
CookieSyncManager.getInstance().sync();
}
private void removeCookie(Context context) {
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
CookieSyncManager.getInstance().sync();
}
“`