Salve a tutti, sto realizzando un programma in Java in grado di compilare il form di una pagina
html inviando i dati tramite metodo post. Il codice html della pagina che implementa questo
form è il seguente:

codice:
<form method="post" action="https://indirizzo/login">
<table colspan=2 border=0 cellpadding=5 cellspacing=0 width="50%">
<tr>


  <td align=right><font face="Verdana, Arial, Helvetica, sans-serif" size="2">User: </font></td>
  <td align=left><input type="text" name="user" value="" size="20" maxlength="255"></td>
</tr>
<tr>
  <td align=right><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Password: </font></td>

  <td align=left><input type="password" name="pass" value="" size="20" maxlength="255"></td>
</tr>


<tr>
      <td align=center colspan=2 height="23"><input type="image" name="mode_login" src="/images/login.gif" width="55" height="17" border="0"></td>
</tr>

</table>
    <input type="hidden" name="mac" value="00:11:50:88:3F:A5">
    <input type="hidden" name="token" value="$1$67759766$t84yKzcPwoZEuxz2kKr9Z1">
    <input type="hidden" name="redirect" value="http://www.google.it/">

    <input type="hidden" name="gateway" value="172.31.202.1:5280">
    <input type="hidden" name="timeout" value="400">
</td>
</tr>

</form>
Il codice con cui eseguo il post è il seguente:

codice:
        URL urlSite1 = new URL("https://indirizzo/login");
        HttpsURLConnection conn2 = (HttpsURLConnection) urlSite1.openConnection();
        conn2.setSSLSocketFactory(sslContext.getSocketFactory());
        conn2.setDoInput(true);
        conn2.setDoOutput(true);
        conn2.setRequestMethod("POST");
        PrintWriter out = new PrintWriter(conn2.getOutputStream());

        String encode = "ISO-8859-1";

        String data = URLEncoder.encode("user", encode) + "=" + URLEncoder.encode("utente", encode);
        data += '&' + URLEncoder.encode("pass", encode) + "=" + URLEncoder.encode("password", encode);
        data += '&' + URLEncoder.encode("mac", encode) + "=" + URLEncoder.encode(mac,encode);
        data += '&' + URLEncoder.encode("token", encode) + "=" + URLEncoder.encode(token, encode);
        data += '&' + URLEncoder.encode("redirect", encode) + "=" + URLEncoder.encode(redirect,encode);
        data += '&' + URLEncoder.encode("gateway", encode) + "=" + URLEncoder.encode(gateway, encode);
        data += '&' + URLEncoder.encode("timeout", encode) + "=" + URLEncoder.encode(timeout, encode);

        out.print(data);
        out.flush();
        out.close();
Poi mi leggo la risposta al login:

codice:
        BufferedReader rd1 = new BufferedReader(new InputStreamReader(conn2.getInputStream()));
        String line1="";
        while ((line1 = rd1.readLine()) != null) {
            
            textArea.append(line1+"\n");
            
        }

        rd1.close();
Teoricamente la risposta che si ottiene dovrebbe essere un avviso che il login è andato a buon fine oppure una richiesta di reinserimento dei dati. Invece ciò che ottengo in risposta è la stessa pagina di login, ma con i campi user e password già compilati: in pratica lo stesso codice con la seguente differenza:

codice:
<td align=left><input type="text" name="user" value="utente" size="20" maxlength="255"></td>
</tr>
<tr>
  <td align=right><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Password: </font></td>
<td align=left><input type="password" name="pass" value="password" size="20" maxlength="255"></td>
Dove "utente" e "password" non sono altro che il nome utente e la password che ho inviato durante la procedura di POST dei dati.

Qualcuno ha qualche suggerimento da darmi per risolvere il problema??