Използвам новия Apache HttpClient 4.2 (не този от Apache Commons).
Трябва да отворя един HttpClient и да направя множество заявки към един и същ сървър. От документацията httpClient трябва автоматично да поддържа бисквитката и следователно множеството заявки да попадат в една и съща сесия. От страната на сървъра обаче отстранявам грешки и виждам това
HttpSession session = req.getHttpSession(true);
връща нов HttpSession обект всеки път.
моят клиентски код е такъв.
// 1-ви път
HttpClient httpClient = new DefaultHttpClient();
req.getSession(true).setAttribute(HTTPCLIENT, httpClient);
HttpGet httpget = new HttpGet(redirectUrl);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String content = httpClient.execute(httpget, responseHandler);
// subsequent calls
HttpClient httpClient = getHttpClient(req);
HttpGet httpget = new HttpGet(redirectUrl);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String content = httpClient.execute(httpget, responseHandler);
// supported by the private method
private HttpClient getHttpClient(HttpServletRequest req){
return (HttpClient) req.getSession(true).getAttribute(HTTPCLIENT);
}
направих ли нещо лошо?