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

ber*_*tie 3 java httpclient apache-httpclient-4.x

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

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

以下是我只启动一次上下文以便多个线程重用的方法:

HttpClientContext context = HttpClientContext.create();
context.setCookieStore(this.createCookieStore());
Run Code Online (Sandbox Code Playgroud)

我也在使用最新版本的HttpClient.

ok2*_*k2c 8

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

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