Java,让CookieHandler只在一个实例上工作
我不知道CookieHandler在系统范围内是如何工作的,我确实查看了CookieHandler的源代码,但除了get/set方法外,没有找到其他信息。TCP/HTTP连接在哪里使用CookieHandler实例,我通过Java,让CookieHandler只在一个实例上工作,java,cookies,setcookie,Java,Cookies,Setcookie,我不知道CookieHandler在系统范围内是如何工作的,我确实查看了CookieHandler的源代码,但除了get/set方法外,没有找到其他信息。TCP/HTTP连接在哪里使用CookieHandler实例,我通过 CookieHandler.setDefault(...) 我应该参考哪个源文件URLConnection&HttpURLConnection似乎与此无关 帮忙,先谢谢你。 编辑: 是否可以只将CookieHandler应用于一个调用了setDefault的实例。对Coo
CookieHandler.setDefault(...)
我应该参考哪个源文件URLConnection
&HttpURLConnection
似乎与此无关
帮忙,先谢谢你。
编辑:
是否可以只将CookieHandler应用于一个调用了
setDefault
的实例。对CookieHandler的适用性给出了一个很好的概述。我通过使用此
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);
}
}
但没有状态和委托给
private static final ThreadLocal<CookieManager> delegate =
new ThreadLocal<CookieManager>();
像
我一直在想同样的事情。这可能会有一些信息,即“即,使用HTTP作为协议的URL,
newURL(”http://example.com“”
例如,将使用HTTP协议处理程序。如果设置了CookieHander对象,此协议处理程序将回调该对象以处理状态管理。”我转向HttpClient,setCookieStore
方法。@user435657可能就是这样。对于解析和编写一行代码来说,几兆字节的代码感觉太多了(Cookie
/Set Cookie
)。
private static final ThreadLocal<CookieManager> delegate =
new ThreadLocal<CookieManager>();
private final CookieManager ownCookieManager = new CookieManager();
delegate.set(ownCookieManager);
doRequest();