Salve a tutti voi programmatori..
Ho un problema: Da poco che mi sto cimentando nella parte web di java giusto per studio personale..
Mi sono posto un problema quello di effettuare un semplice login in un sito qualunque.. Questo verrà fatto credo tramite una POST. Prendo come esempio facebook.
Ho a conoscenza username e password e l'intento è quello di chiamare questa URL: "http://www.facebook.com/login.php?login_attempt=1" passando nella richiesta http post i dati.
Di seguito il codice che ho fatto:
codice:public class Login { private String email = "username"; private String password = "password"; public void connetti() throws IOException{ URL url2=new URL("http://www.facebook.com/login.php?login_attempt=1"); HttpURLConnection connection = (HttpURLConnection) url2.openConnection(); HttpURLConnection.setFollowRedirects(true); connection.setDoOutput(true); connection.setRequestMethod("POST"); String parameters = "email="+email+"&pass="+password+"\r\n"; DataOutputStream wr = new DataOutputStream(connection.getOutputStream()); wr.writeBytes(parameters); wr.flush(); wr.close(); int responseCode = connection.getResponseCode(); System.out.println(responseCode); BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); int cont = 0; while ((inputLine = in.readLine()) != null) { response.append(inputLine); response.append("\n"); cont++; } in.close(); System.out.println(response.toString()); System.out.println(cont + " righe scritte"); connection.disconnect(); }
Ora vi pongo alcuni questiti:
1) Come faccio a sapere, e dove lo vado a verificare quali sono i parametri di input che una data POST request vuole??
2) Come mi comporto per i protocolli https? vale lo stesso ragionamento?
3) Nella riga "String parameters = "email="+email+"&pass="+password+"\r\n";"
ho aggiunto \n\r perchè l'ho visto nei vari esempi googleando. è giusto? e a cosa serve?
4) So che ci sono sicuramente delle mancanze in questo codice quindi datemi delle dritte in generale
Alla fine dei conti il codice non mi funziona... ho bisogno di alcune delucidazioni.. In pratica quando eseguo con l'URL in protocollo https ho responseCode = 200 il che mi dice che è andato a buon fine, ma se vado a leggere l'output, mi da esattamente lo stesso codice html della pagina in entrata. Mentre se eseguo in http mi da errore 301 e non stampa l'output ovviamente.
Ora lascio la parola a voi sperando di essere stato il piu chiaro possibile... Vi saluto e vi ringrazio in anticipo![]()