Ecco un semplice snippet di codice che vi permetterà di effettuare delle richieste http POST. Vediamo subito il codice con commento:
public void sendPostRequest() { HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost("https://informaticalab.com"); // Imposto le coppie attributo-valore: List params = new ArrayList(); params.add(new BasicNameValuePair("email", "admin@informaticalba.com")); params.add(new BasicNameValuePair("password", "myFancyPassword")); try { //Allego gli entity alla richiesta post: httpPost.setEntity(new UrlEncodedFormEntity(params)); //Eseguo la richiesta: Log.i(TAG, "Eseguo la richiesta: "); HttpResponse response = httpClient.execute(httpPost); //Loggo la risposta: Log.i(TAG, EntityUtils.toString(response.getEntity())); } catch (UnsupportedEncodingException e) { // log exception e.printStackTrace(); } catch (ClientProtocolException e) { // Log exception e.printStackTrace(); } catch (IOException e) { // Log exception e.printStackTrace(); } return null; } }
UrlEncodedFromEntity può lanciare l’ eccezione UnsupportedEncodingException. Per avere il corpo della risposta alla nostra richiesta, dovremo fare response.getEntity().
Usando poi il metodo statico EntityUtils.toString() possiamo avere il testo sottoforma di stringa.
Per effettuare una prova, vi ricordo che dovrete prima impostare all’ interno dell’ Android Manifest il permesso:
Inoltre, dovrete creare un’altro thread per poter effettuare connessioni ad internet (altrimenti la ui dovrebbe rimanere bloccata finchè la richiesta non riceve risposta).
Usare un
AsyncTask<Void,Void,Void>
dovrebbe fare al caso vostro 😉