Java Language Obtener el cuerpo de respuesta de una URL como una cadena


Ejemplo

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();
}

Esto descargará los datos de texto de la URL especificada y los devolverá como una cadena.

Cómo funciona esto:

  • Primero, creamos una HttpUrlConnection desde nuestra URL, con la new URL(url).openConnection() . Lanzamos la UrlConnection esto vuelve a una HttpUrlConnection , por lo que tenemos acceso a cosas como agregar encabezados (como User Agent) o verificar el código de respuesta. (Este ejemplo no lo hace, pero es fácil de agregar).

  • Luego, cree InputStream basándose en el código de respuesta (para el manejo de errores)

  • Luego, cree un BufferedReader que nos permita leer el texto de InputStream que obtenemos de la conexión.

  • Ahora, agregamos el texto a un StringBuilder , línea por línea.

  • Cierre el InputStream y devuelva la cadena que ahora tenemos.

Notas:

  • Este método arrojará una IoException en caso de error (como un error de red o sin conexión a Internet), y también lanzará una excepción MalformedUrlException no verificada si la URL dada no es válida.

  • Puede utilizarse para leer desde cualquier URL que devuelva texto, como páginas web (HTML), API REST que devuelvan JSON o XML, etc.

  • Vea también: Lea la URL a Cadena en algunas líneas de código Java .

Uso:

Es muy simple:

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