PDA

View Full Version : [Java] Dialogare con un sito web


M4nu3lx
29-05-2016, 11:34
Ciao ragazzi avrei un problema riguardo questo progetto che stò realizzando e avrei bisogno di qualche consiglio da qualcuno un pò più esperto..
Vi spiego, quello che devo fare è un'applicazione java che si colleghi ad un URL in cui c'è un form da compilare e stampare la risposta.
La risposta che mi stampa è il solo codice html della pagina senza il riscontro.
Qui di seguito trovate il codice che ho già fatto e che su di un altro sito funziona bene ma su quest'altro non và...

package prova;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class Prova {
public static void main (String[] args) throws IOException{
try {
URL url = new URL("https://didasko.eipass.com/website_form/verify.php?w=1&lang=it");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
String data = "nome=NOMINATIVO"
+ "&cognome=..."
+ "&txtdatanascita=..."
+ "&attestato=AAAA\r\n";
connection.setDoOutput(true);//abilita la scrittura
connection.setRequestMethod("POST");//settaggio del metodo
OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream());
wr.write(data);//scrittura del content
wr.flush();
//CONTROLLI SULLA RISPOSTA
BufferedReader read = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while((line = read.readLine())!= null){
System.out.println(line);
}
} catch(MalformedURLException ex) {
ex.printStackTrace();
} catch(IOException ioex) {
ioex.printStackTrace();
}
}
}

Spero di essermi spiegato.. Qualcuno ha qualche idea??? Grazie per qualsiasi aiuto...

tomminno
30-05-2016, 08:56
Ogni pagina è diversa dall'altra, sicuramente non stai passando tutti i parametri richiesti e nel modo atteso.
Hai guardato con un browser come vengono passati?
Quella pagina non prende in ingresso dei semplici parametri in post ma un multipart/form-data

M4nu3lx
30-05-2016, 10:42
Si ho visto il codice, ma quindi con multipart/form-data si passano in modo diverso dal normale? non conosco bene questo form ma pensavo bastasse andare a trovare il nome dei campi come ho fatto e passarglieli con write :stordita: