puoi dirmi come memorizzare jsessionid in cookie, in modo che possa essere passato al servlet con richiesta post? Sto usando Apache HttpClient versione 4.0.3. Tutte le soluzioni che ho trovato spiega come farlo con HttpClient 3.1. Ho letto tutorial e ho provato questo, ma non funziona.Apache HttpClient 4.0.3 - Come faccio a impostare cookie con sessionID per la richiesta POST
HttpPost httppost = new HttpPost(postData);
CookieStore cookieStore = new BasicCookieStore();
BasicClientCookie cookie = new BasicClientCookie("JSESSIONID", getSessionId());
cookieStore.addCookie(cookie);
client.setCookieStore(cookieStore);
response = client.execute(httppost);
Edit - ulteriori spiegazioni
sto collegano al servlet scritta da un amico. Ho effettuato l'accesso e ottenuto jsessionid
. Ora voglio inviare un'altra richiesta e devo passare jsessionid a scopo di autorizzazione. Servlet funziona bene perché ho usato java HttpURLConnection, ho impostato il cookie, l'ho passato e ha funzionato. Ora con HttpClient non ottengo eccezioni ma il codice di ritorno dal servlet di friend indica che non c'era nessun sessionid nella richiesta.
Un'altra modifica: ho una soluzione Ho impostato il parametro dell'intestazione della richiesta e ha funzionato. Sessionid riconosciuto servlet.
httppost.setHeader("Cookie", "JSESSIONID="+ getSessionId());
Ora la mia domanda è: questo metodo è corretto?
Puoi dirci esattamente cosa non funziona? Ricevi un'eccezione o la richiesta viene inviata senza il cookie? Puoi fornire un dump del protocollo di rete? – ordnungswidrig
Prova Fiddler http://www.fiddler2.com/fiddler2/ per vedere cosa sta succedendo esattamente. –
Grazie mille! Sono riuscito a far riconoscere al mio server il cookie tramite: httppost.setHeader ("Cookie", "JSESSIONID =" + getSessionId()); – Zennichimaro