我不知道cookiehandler如何运行系统,我确实查看了cookiehandler的来源,但是除了get/set方法之外,没有找到更多信息。 TCP/HTTP连接在哪里使用CookieHandler的实例,我设置

CookieHandler.setDefault(...)

我应该参考哪个源文件? URLConnection & HttpURLConnection 似乎与它没有关系。

帮助,谢谢。


编辑:是否可以将cookiehandler应用于一个实例 setDefault 被调用。

有帮助吗?

解决方案

我通过使用它来工作

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();

其他提示

Javadoc java.net.CookieManager 给出了很好的概述cookiehandler的适合。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top