Подтвердить что ты не робот

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);
            }

но это не работает.

4b9b3361

Ответ 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);
            ...