URLConnection с Cookies?
Я пытаюсь сделать URLConnection, который поддерживает файлы cookie. Согласно документации, я могу использовать:
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);
}
но это не работает.
Ответы
Ответ 1
Мне удалось включить файлы cookie с использованием класса Ian Brown CookieManager:
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);
...