Per effettuare il login puoi usare qualcosa del tipo:
Codice PHP:
StringBuffer parameters = new StringBuffer();
parameters.append("username="+username);
parameters.append("&password="+password);
String JsessionID;
try {
URL url = new URL(loginUrl);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setRequestMethod("GET");
OutputStream os = con.getOutputStream();
InputStream is = con.getInputStream();
os.write(parameters.toString().getBytes());
os.close();
int status = con.getResponseCode();
//ricava una stringa da is ed estrai il valore di JSESSIONID
...
JsessionID = ...;
con.disconnect();
} catch (ProtocolException ex) {....}
ovviamente per accedere poi alla pagina che necessita di login ti devi far riconoscere usando il "parametro" JSESSIONID che ti viene restituito con la prima richiesta. Tale JSESSIONID va concatenato all'url della seconda richiesta nel seguente modo:
Codice PHP:
http://aaa.bb/c;JSESSIONID=....?param1=1¶m2=2
JSESSIONID in genere viene restituito tramite un cookie. Ci sono modi piu puliti di ricavarlo, ma usando HttpURLConnection puoi ottenerlo parsando l'InputStream della HttpURLConnection.
A questo punto puoi creare una nuova HttpURLConnection nel seguente modo
Codice PHP:
String content;
try {
Stirng myPageUrl="http://aaa.bb/c;JSESSIONID="+JsessionID+"?param1=1¶m2=2";
URL url = new URL(myPageUrl);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setRequestMethod("GET");
InputStream is = con.getInputStream();
int status = con.getResponseCode();
//ricava il contenuto della pagina da is
content = ...;
con.disconnect();
} catch (ProtocolException ex) {....}
ciao.