urlconnection

Mattepuffo's logo
Android HttpURLConnection

Android HttpURLConnection

In questo articolo (o in altri che richiedevano connessioni da dispostivi Android) abbiamo visto come effettuare richieste remote in POST.

Ma dalle ultime versioni delle API Android, il package org.apache.http è stato deprecato e poi rimosso.

Per effettuare richieste HTTP a servizi remoti si deve usare la classe HttpURLConnection.

Qui potete vedere i dettagli relativi ad Android 6.

Vediamo oggi un esempio; andremo ad interrogare il servizio ISBNdb.

Mattepuffo's logo
Riempire una DataTable da JSON in PrimeFaces

Riempire una DataTable da JSON in PrimeFaces

In un progetto didattico su PrimeFaces, mi sono imbattutto in un problema: riempire una DataTable da JSON invece cha direttamente da database.

Vediamo come fare.

Prima di tutto, creiamo una classe che incapsula i nostri dati JSON:

import java.io.Serializable;

public class Blog implements Serializable {

    private String titolo;
    private int count;

    public Blog(String titolo, int count) {
        this.titolo = titolo;
        this.count = count;
    }

    public String getTitolo() {
        return titolo;
    }

    public void setTitolo(String titolo) {
        this.titolo = titolo;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

}

Dove titolo e count sono due proprietà dei dati JSON.

Mattepuffo's logo
Usare HttpURLConnection in Android

Usare HttpURLConnection in Android

Passando una app totalmente ad Android 5, ho notato che praticamente tutto il package org.apache.http risulta deprecato.

In cambio, l'SDK ci mette a disposizione nuovi strumenti, che a quanto pare siano anche più leggeri.

Principalmente tutto parte dalla connessione astratta URLConnection.

Vediamo un esempio usando HttpURLConnection, altra classe astratta che estende la precedente.

Mattepuffo's logo
Download file in Android

Download file in Android

Quello che vediamo oggi è come scaricare file in Android dalla rete.

Prima di tutto i permessi da mettere nell'AnrdoidManifest:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Come vedete due sono quelli che ci servono come minimo: quello legato a internet per la connessione, e quello per salvare i file sul dispositivo.

Nella nostra Activity:

public class MainActivity extends Activity {
    
    private String path = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new DownloadDatas().execute("");
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
    public class DownloadDatas extends AsyncTask  {

        @Override
        protected Object doInBackground(Object... params) {
            try {
                DownloadFile.downlad(path + "file.sqlite");
            } catch (IOException e) {
            }
            return null;
        }
      
    }

}

Come prima cosa, notiamo che qui impostiamo il path che punta alla directory interna al dispositivo, dove salvare i file.