Tag: cookiestore

如何使用HttpURLConnection和Java中的CookieManager为每个连接使用不同的cookie

我需要使用HttpURLConnection同时从多个线程连接到一个网站,但是为每个连接使用不同的cookie。 由于Java仅支持设置全局CookieManager,因此我实现了以下hack。 我没有调用CookieHandler.setDefault(new CookieManager()) ,而是实现了一个自定义CookieHandler ,它为每个线程使用不同的CookieStore实例,在每个请求后清除它。 我已经基于CookieManager的源代码创建了名为SessionCookieManager的类。 cookieJar成员变量已被删除,其用法已被getCookieStore()取代。 添加了以下代码: public class SessionCookieManager extends CookieHandler { private final static SessionCookieManager ms_instance = new SessionCookieManager(); public static SessionCookieManager getInstance() { return ms_instance; } private final static ThreadLocal ms_cookieJars = new ThreadLocal() { @Override protected synchronized CookieStore initialValue() { return new sun.net.www.protocol.http.InMemoryCookieStore(); } }; public void clear() { […]