use*_*657 6 java cookies setcookie
我不知道 CookieHandler 在系统范围内是如何工作的,我确实查看了 CookieHandler 的源代码,但除了 get/set 方法之外没有找到更多信息。TCP/HTTP 连接在哪里使用 CookieHandler 的实例,我通过以下方式设置
CookieHandler.setDefault(...)
Run Code Online (Sandbox Code Playgroud)
我应该参考哪个源文件?URLConnection&HttpURLConnection似乎与此无关。
帮忙,先谢谢了。
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);
}
}
Run Code Online (Sandbox Code Playgroud)
全局安装
static {
CookieHandler.setDefault(new DelegatingCookieManager());
}
Run Code Online (Sandbox Code Playgroud)
但没有状态并委托给
private static final ThreadLocal<CookieManager> delegate =
new ThreadLocal<CookieManager>();
Run Code Online (Sandbox Code Playgroud)
它在使用它的类中实例化
private final CookieManager ownCookieManager = new CookieManager();
Run Code Online (Sandbox Code Playgroud)
喜欢
delegate.set(ownCookieManager);
doRequest();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3553 次 |
| 最近记录: |