HttpClient:我可以通过多个线程安全地为不同的域重用HttpContext吗?

时间:2014-06-16 04:14:37

标签: java httpclient apache-httpclient-4.x

我可以安全地重复使用HttpClientContext来为多个线程存储不同域的cookie,或者为每个域创建一个上下文更好,甚至更窄,为每个域的每个线程创建一个上下文?

我的想法是表现得像一个浏览器,可以处理每个域的cookie,并且可以在源自相同或不同域的页面上打开多个选项卡。

这里是我如何启动上下文只能被多个线程重用一次:

HttpClientContext context = HttpClientContext.create();
context.setCookieStore(this.createCookieStore());

我也使用最新版本的HttpClient。

1 个答案:

答案 0 :(得分:8)

不,你不能。即使HttpClientContext实例本身是踏实安全的,它也可能包含非上下文属性。

但是,您可以安全地使不同的HttpClientContext实例共享相同的CookieStore实例,从而使HTTP状态相同。