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 に答える