Io inizierei a vedere quali campi contiene il form (sia visibili che hidden) e quindi capire quali informazioni inviare alla pagina successiva tramite la classe
NameValuePair.
Prendendo il codice html della pagina si può osservare questo:
<form action="[url=http://www.anddev.it/index.php?action=login2"]Accedi[/url] name="frmLogin" id="frmLogin" method="post" accept-charset="UTF-8" onsubmit="hashLoginPassword(this, '070e275745ea7d4fd06bd218cf29bdfd');">
...
<dt>Nome utente:</dt>
<input type="text" name="user" size="20" value="" class="input_text" />
<dt>Password:</dt>
<input type="password" name="passwrd" value="" size="20" class="input_password" />
...
<dt>Validità dell'accesso (in minuti):</dt>
<input type="text" name="cookielength" size="4" maxlength="4" value="60" class="input_text" />
<dt>Rimani sempre connesso:</dt>
<input type="checkbox" name="cookieneverexp" class="input_check" onclick="this.form.cookielength.disabled = this.checked;" />
...
<p><input type="submit" value="Accedi" class="button_submit" /></p>
...
<input type="hidden" name="hash_passwrd" value="" />
...
</form>
Le info che è necessario spedire, quindi, sono:
- user, di tipo testo
- passwrd, di tipo testo
- cookielength, di tipo numerico di default 60
- cookieneverexp, di tipo checkbox e quindi on/off (se non erro non sono un esperto di html) e se on elimina il campo cookielength
- hash_passwrd, essendo un hash di tipo alfanumerico
La tua analisi, infatti, mostra questo a conferma di quanto ti ho detto:
Content-Length: 91
user=onire&passwrd=&cookieneverexp=on&hash_passwrd=hash passwordUna prova di login mia mostra:
user=tava&passwrd=&cookielength=60&hash_passwrd=77abe8e1afeaa51d9c3a57e817e430bf3940b7ef
Il che porta a creare in Java la seguente lista di parametri:
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("user", "tava"));
formparams.add(new BasicNameValuePair("passwrd", ""));
formparams.add(new BasicNameValuePair("cookieneverexp", "on"));
formparams.add(new BasicNameValuePair("hash_passwrd", "77abe8e1afeaa51d9c3a57e817e430bf3940b7ef"));Il vero problema è ora capire come creare la hash_passwd poichè viene creata da una routine (Javascript credo) in base ad un valore univoco che cambia ad ogni richiesta. Nel mio esempio di login era:
onsubmit="hashLoginPassword(this, '070e275745ea7d4fd06bd218cf29bdfd');"Ora il pranzo mi chiama ma si può cercare la routine nei file Javascript collegati alla pagina.
Ciao!