Vícenásobné volání může i skryté – klient může být přesměrován na
novou adresu, což Commmons Http Client (pokud mu neřeknete jinak)
zařídí sám. Jenom je potřeba mu poskytnout objekt HttpState, který si
bude cookie pamatovat.

HttpState state = new HttpState();
HttpClient httpclient = new HttpClient();
httpclient.setState(state);

// RFC 2101 cookie management spec is used per default
// to parse, validate, format & match cookies
httpclient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);
// A different cookie management spec can be selected
// when desired

PostMethod httppost = new PostMethod(strURL);
int result = httpclient.executeMethod(httppost);

Ovšem Post a redirect nejde moc dohromady. Nepokoušíte se posílat data
rovnou na nějakou adresu, u které cílový server očekává, že se tam
klient dostal už z nějaké jeho stránky a tím pádem už cookie má? Pak
by bylo nutné nejprve s tím objektem HttpState zavolat GetMethod na
nějakou adresu, kde to cookie může klient získat, a teprve pak volat
příslušnou metodu Post. Také můžete tu metodu Get zavolat jenom jednou
a objekt HttpState pak sdílet (ale pozor např. na vypršení session na
cílovém serveru). A taky můžete do HttpState nastavit cookie ručně,
pokud víte, jak má vypadat.

Filip Jirsák

>  v ramci servletu vytvorim HttpClienta, Nasledne vytvorim PostMethod s 
> definovanou adresou a do nej vlozim parametre prihlasenia ako 
> NameValuePair[]. Po tomto necham clienta post execuovat a z toho dostanem uz 
> vysledok. Kedze sa tu nevytvaraju ziadne dve spojenia resp. nevidim, ze by 
> bol server volany dva krat, nie je mi uplne jasne ako mu mam cookie , ktore 
> mi dorazili poslat naspat, kedze spojenie sa po ich dorazeni uzavrie.

Odpovedet emailem