URLC соединение с куки? - PullRequest
       33

URLC соединение с куки?

20 голосов
/ 15 июня 2011

Я пытаюсь создать соединение URLC, которое поддерживает куки. Согласно документации я могу использовать:

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

14 голосов
/ 15 июня 2011

Мне удалось включить файлы cookie с помощью класса 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);
            ... 
...