Home / Programmazione / Java Android / Android HttpURLConnection
Mattepuffo

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.

Ecco la classe con un semplice metodo:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class Service {

    public String launchIsbndb(String isbn) throws IOException {
        String stringUrl = "http://isbndb.com/api/v2/json/API_KEY/book/" + isbn.replaceAll("-", "");
        URL url = new URL(stringUrl);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        InputStream is = connection.getInputStream();
        BufferedReader rd = new BufferedReader(new InputStreamReader(is, "UTF-8"));
        String line;
        StringBuilder response = new StringBuilder();
        while ((line = rd.readLine()) != null) {
            response.append(line);
        }
        rd.close();
        return response.toString();
    }
}

Impostiamo l'url passando il codice ISBN al metodo.

Sotto usiamo HttpURLConnection per interagire con il web service.

Poi leggiamo la risposta in maniera "classica".

Enjoy!