でうまくいっていたものが、
HttpURLConnection + CookieManager
でうまくいかないときは、サーバーが RFC 2965 に対応していない可能性があります。RFC 2109 しかサポートしていないサーバーに対応するには、HttpCookieのバージョンに 0 を指定します。
このことは、HttpURLConnectionのページ の「Sessions with Cookies」に書いてあります。このページでは新しくHttpCookieを作っていますが、次のように保存されているHttpCookieを上書きすることもできます。
- CookieHandler cookieHandler = CookieHandler.getDefault();
- CookieManager cookieManager = (CookieManager) cookieHandler;
- CookieStore cookieStore = cookieManager.getCookieStore();
- URI uri = URI.create(url);
- List<HttpCookie> httpCookies = cookieStore.get(uri);
- if (httpCookies != null && httpCookies.size() > 0) {
- HttpCookie httpCookie = httpCookies.get(0);
- httpCookie.setVersion(0);
- }
android初心者です。いろいろと学ばせていただいています。ありがとうございます。
返信削除