Java Language Ottieni il corpo della risposta da un URL come stringa

Esempio

String getText(String url) throws IOException {
    HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
    //add headers to the connection, or check the status if desired..
    
    // handle error response code it occurs
    int responseCode = conn.getResponseCode();
    InputStream inputStream;
    if (200 <= responseCode && responseCode <= 299) {
        inputStream = connection.getInputStream();
    } else {
        inputStream = connection.getErrorStream();
    }

    BufferedReader in = new BufferedReader(
        new InputStreamReader(
            inputStream));

    StringBuilder response = new StringBuilder();
    String currentLine;

    while ((currentLine = in.readLine()) != null) 
        response.append(currentLine);

    in.close();

    return response.toString();
}

Ciò scaricherà i dati di testo dall'URL specificato e li restituirà come una stringa.

Come funziona:

  • Per prima cosa, creiamo HttpUrlConnection dal nostro URL, con il new URL(url).openConnection() . Trasmettiamo UrlConnection per tornare a HttpUrlConnection , così abbiamo accesso a cose come aggiungere intestazioni (come User Agent) o controllare il codice di risposta. (Questo esempio non lo fa, ma è facile da aggiungere.)

  • Quindi, creare InputStream base al codice di risposta (per la gestione degli errori)

  • Quindi, crea un BufferedReader che ci permette di leggere il testo da InputStream che otteniamo dalla connessione.

  • Ora, aggiungiamo il testo a StringBuilder , riga per riga.

  • Chiudi l' InputStream e restituisci la stringa che ora abbiamo.

Gli appunti:

  • Questo metodo genererà una IoException di IoException in caso di errore (ad esempio un errore di rete o nessuna connessione Internet) e genererà anche un'eccezione MalformedUrlException non selezionata se l'URL specificato non è valido.

  • Può essere utilizzato per la lettura da qualsiasi URL che restituisce testo, come pagine Web (HTML), API REST che restituiscono JSON o XML, ecc.

  • Vedi anche: Leggi l'URL su String in poche righe di codice Java .

Uso:

È molto semplice:

String text = getText(”http://example.com");
//Do something with the text from example.com, in this case the HTML.