gpt4 book ai didi

Java,让 CookieHandler 只在一个实例上工作

转载 作者:搜寻专家 更新时间:2023-11-01 03:44:45 28 4
gpt4 key购买 nike

我不知道 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());
}

但没有状态和委托(delegate)

private static final ThreadLocal<CookieManager> delegate =
new ThreadLocal<CookieManager>();

在使用它的类中实例化

private final CookieManager ownCookieManager = new CookieManager();

喜欢

delegate.set(ownCookieManager);
doRequest();

关于Java,让 CookieHandler 只在一个实例上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4543328/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com