2014-06-16 1 views
3

HttpClientContext를 안전하게 다시 사용하여 여러 도메인의 쿠키를 여러 스레드에서 저장할 수 있습니까? 아니면 각 도메인마다 하나의 컨텍스트를 만들거나 더 좁은 도메인마다 각 스레드마다 하나의 컨텍스트를 만드는 것이 더 좋을까요?HttpClient : 여러 스레드에서 다른 도메인의 HttpContext를 안전하게 다시 사용할 수 있습니까?

내가 상상하는 것은 각 도메인에 대한 쿠키를 처리 할 수 ​​있고 동일하거나 다른 도메인에서 비롯된 페이지에서 여러 탭을 열 수있는 브라우저처럼 행동하는 것입니다. 나는 또한 HttpClient를의 최신 버전을 사용하고

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

: 내가 여러 스레드에 의해 재사용 될 번만 컨텍스트를 초기화 방법은 다음과

입니다.

답변

8

아니요, 할 수 없습니다. HttpClientContext 인스턴스 자체는 트레드 안전성을 가지지 만 컨텍스트 특성은 포함하지 않을 수 있습니다.

다른 인스턴스가 동일한 CookieStore 인스턴스를 공유하므로 동일한 HTTP 상태를 안전하게 만들 수 있습니다.

+0

그 이유는 내가 multithreaded 사용으로 인해 httpContext에서 임의의 리디렉션 URL을 얻을 설명합니다. 이제 모든 것이 훌륭하게 작동합니다. 감사 ! – bertie

관련 문제