Salve a tutti,
Sono nuovo del forum!
, anche se spesso utilizzo la vostra community proprio per risolvere problemi riguardante la programmazione!
Da qualche giorno sto cercando di utilizzare un esempio trovato in rete per inviare i dati ad un form via POST. Nello specifico vorrei creare un semplice programma che inserendo numero di cellulare e password permetta di visualizzare il saldo residuo di una sim card della compagnia telefonica 3.
Il form in questione è questo qui: https://areaclienti3.tre.it/login_133.jsp
Mentro il codice è questo:
codice:
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; public class prova { private final String USER_AGENT = "Mozilla/5.0"; public static void main(String[] args) throws Exception { prova5 http = new prova5(); System.out.println("Send Http POST request"); http.sendPost(); } // HTTP POST request private void sendPost() throws Exception { String url = "https://areaclienti3.tre.it/login_133.jsp?service=https%3A%2F%2Fareaclienti3.tre.it%2F133%2Fprofilo.jsp<=LT-11962399-NAXtCKUqT3ATw9PcUvSGgmwEnfYEvN&flowExecutionKey=e1s1"; HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); // add header post.setHeader("User-Agent", USER_AGENT); List<NameValuePair> urlParameters = new ArrayList<NameValuePair>(); urlParameters.add(new BasicNameValuePair("username1", "33********")); urlParameters.add(new BasicNameValuePair("password", "PASSWORD")); /*urlParameters.add(new BasicNameValuePair("_eventId", "submit")); urlParameters.add(new BasicNameValuePair("lt", "LT-11962399-NAXtCKUqT3ATw9PcUvSGgmwEnfYEvN")); urlParameters.add(new BasicNameValuePair("execution", "e1s1")); urlParameters.add(new BasicNameValuePair("usertype", "MSISDN")); urlParameters.add(new BasicNameValuePair("username", ""));*/ post.setEntity(new UrlEncodedFormEntity(urlParameters)); HttpResponse response = client.execute(post); System.out.println("\nSending 'POST' request to URL : " + url); System.out.println("Post parameters : " + post.getEntity()); System.out.println("Response Code : " + response.getStatusLine().getStatusCode()); BufferedReader rd = new BufferedReader( new InputStreamReader(response.getEntity().getContent())); StringBuffer result = new StringBuffer(); String line = ""; while ((line = rd.readLine()) != null) { result.append(line); } System.out.println(result.toString()); } }
L'output che ottengo è il codice HTML della pagina di login invece che della pagina dell'area clienti.
L'esempio dal quale ho tratto spunto è reperibile a questo link: http://www.mkyong.com/java/apache-httpclient-examples/
Qualcuno ha qualche idea?
Vi ringrazio della disponibilità