Java,让CookieHandler仅处理一个实例
题
我不知道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的适合。
不隶属于 StackOverflow