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);
}
しかし、これは機能しません。
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);
...