これを使えば動くようになりました
private static class DelegatingCookieManager extends CookieManager {
@Override public void setCookiePolicy(CookiePolicy cookiePolicy) {
delegate.get().setCookiePolicy(cookiePolicy);
}
@Override public CookieStore getCookieStore() {
return delegate.get().getCookieStore();
}
@Override public Map<String, List<String>> get(
URI uri, Map<String, List<String>> requestHeaders)
throws IOException {
return delegate.get().get(uri, requestHeaders);
}
@Override public void put(URI uri, Map<String,
List<String>> responseHeaders)
throws IOException {
delegate.get().put(uri, responseHeaders);
}
}
これはグローバルにインストールされます
static {
CookieHandler.setDefault(new DelegatingCookieManager());
}
しかし、状態とデリゲートを持たない
private static final ThreadLocal<CookieManager> delegate =
new ThreadLocal<CookieManager>();
使用されるクラスでインスタンス化されます
private final CookieManager ownCookieManager = new CookieManager();
お気に入り
delegate.set(ownCookieManager);
doRequest();