我正在尝试制作支持cookie的URLConnection。根据我可以使用的文档:
CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
我无法使用此代码,然后我看到这只适用于API 9(2.3)。但是,我在旧的模拟器中使用CookieManager时没有出错,CookieManager存在,但无法构造。有没有办法让这个版本适用于早期版本?我试过了:
cookieManager.setAcceptCookie(true);
URLConnection con = u.openConnection();
con.setRequestProperty("Cookie", cookieManager.getInstance().getCookie(url););
con.setDoOutput(true);
con.connect();
String addCookie = con.getHeaderField("Set-Cookie");
System.out.println(con.getHeaderFields().toString());
if (addCookie!=null) {
cookieManager.getInstance().setCookie(url, addCookie);
}
但这不起作用。
答案 0 :(得分:14)
我能够使用Ian Brown的CookieManager类启用cookie: http://www.hccp.org/java-net-cookie-how-to.html
我将它重命名为IansCookieManager,设置一个类变量_CM = new IansCookieManager,现在很简单:
URLConnection conn = u.openConnection();
_CM.setCookies(conn);
conn.connect();
_CM.storeCookies(conn);
...