Salve a tutti, grazie mille in anticipo per l'aiuto e scusate per l'eventuale ignoranza. Il mio quesito è questo:
in un sito web c'è una form, nella quale io inserisco Utente e Password. Quando clicco il pulsante "ACCEDI AL SISTEMA" i dati inseriti vengono mandati ad un WebServer (non mio) che mi risponde mandandomi la pagina richiesta. La form si trova qui: L'html della form è questo:
<form id="S4YForm" method="POST" action="default.asp?action=accesso_sistema">
<center>
<table class="Main-Content-Cell-Body-Text-Table-Centro">
<tr>
<td nowrap class="Main-Content-Cell-Body-Text-Table-Login-Centro">
<b>UTENTE</b>
</td>
</tr>
<tr>
<td nowrap>
<input type="text" name="username" id="username" value="USERNAME" autocomplete="off"
class="validate[required,minSize[8],custom[S4YSecure],funcCall[checkUSR]] Main-Content-Cell-Body-Text-Input-300"
onfocus="javascript:if(this.value==this.defaultValue){this.value='';}" onblur="javascript:if(this.value==''){this.value=this.defaultValue;}">
</td>
</tr>
<tr>
<td nowrap class="Main-Content-Cell-Body-Text-Table-Login-Centro">
<b>PASSWORD [*]</b>
</td>
</tr>
<tr>
<td nowrap>
<input type="password" name="password" id="password" value="PASSWORD" autocomplete="off"
class="validate[required,minSize[8],custom[S4YSecure],funcCall[checkPWD]] Main-Content-Cell-Body-Text-Input-300"
onfocus="javascript:if(this.value==this.defaultValue){this.value='';}" onblur="javascript:if(this.value==''){this.value=this.defaultValue;}">
</td>
</tr>
<tr>
<td nowrap class="Main-Content-Cell-Body-Text-Table-Login-Centro">
<b>MODALITA' DI ACCESSO</b>
</td>
</tr>
<tr>
<td nowrap>
<select name="remember_me" class="Main-Content-Cell-Body-Text-Input-300">
<option value="N" selected>RICHIEDI SEMPRE LE CREDENZIALI</option>
<option value="S">MEMORIZZA LE CREDENZIALI (30 GIORNI)</option>
</select>
</td>
</tr>
<tr>
<td nowrap nowrap class="Main-Content-Cell-Body-Text-Table-Login-Centro">[* Il sistema distingue tra MAIUSCOLE e minuscole]</td>
</tr>
<tr>
<td align="center" nowrap>
<input type="submit" value="ACCEDI AL SISTEMA" class="Main-Content-Cell-Body-Text-Login-Button">
</td>
</tr>
</table>
</center>
</form>
Ora la mia domanda è questa: è possibile inviare le stesse informazioni (utente, password, ecc) da java e ricevere l'html corrispondente?
Io ho fato questo al momento ma il problema è che il secondo file è uguale al primo, quindi non riesco ad inviare i dati e ricevere una risposta:
try
{
URL url = new URL("https://servizi.aia-figc.it/sinfonia4you/");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
BufferedReader read = new BufferedReader(new InputStreamReader(connection.getInputStream()));
PrintWriter file = new PrintWriter(new BufferedWriter(new FileWriter("file.html")), true);
System.out.println("Connesso");
String line = read.readLine();
String html = "";
while(line != null)
{
html += line;
line = read.readLine();
}
file.write(html);
file.close();
System.out.println("Letto");
read.close();
//connection.disconnect();
url = new URL("https://servizi.aia-figc.it/sinfonia4you/area_sistema/system_default/");
connection = (HttpURLConnection) url.openConnection();
// codifico le coppie di dati da inviare
String datiPost = URLEncoder.encode("username", "UTF-8") + "=" + URLEncoder.encode("mioUtente", "UTF-8");
datiPost += "&" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode("miaPassword", "UTF-8");
datiPost += "&" + URLEncoder.encode("remember_me", "UTF-8") + "=" + URLEncoder.encode("N", "UTF-8");
// se devo inviare il dato in POST
connection.setDoOutput(true);
//connection.setChunkedStreamingMode(1);
// scrivo nello stream di uscita
OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream());
wr.write(datiPost);
wr.flush();
wr.close();
System.out.println("Mandato Credenziali");
read = new BufferedReader(new InputStreamReader(connection.getInputStream()));
file = new PrintWriter(new BufferedWriter(new FileWriter("file2.html")), true);
line = read.readLine();
html = "";
while(line != null)
{
html += line;
System.out.println(line);
line = read.readLine();
}
file.write(html);
file.close();
System.out.println("Letto2");
}
catch(MalformedURLException ex)
{
ex.printStackTrace();
}
catch(IOException ioex)
{
ioex.printStackTrace();
}