20

我正在尝试创建一个支持 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);
            }

但这不起作用。

4

1 回答 1

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);
            ... 
于 2011-06-15T15:41:23.017 回答