He visto muchos ejemplos diferentes de usar HttpURLConnection + InputStream, y cerrarlos (o no cerrarlos) después de su uso. Esto es lo que se me ocurrió para asegurarme de que todo esté cerrado una vez terminado, ya sea que haya un error o no. Es esto válido ?:¿Cerrar URLConnection y InputStream correctamente?
HttpURLConnection conn = null;
InputStream is = null;
try {
URL url = new URL("http://example.com");
// (set connection and read timeouts on the connection)
conn = (HttpURLConnection)url.openConnection();
is = new BufferedInputStream(conn.getInputStream());
doSomethingWithInputStream(is);
} catch (Exception ex) {
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
}
}
if (conn != null) {
conn.disconnect();
}
}
Gracias
también quieren setConnectTimeout y por lo setReadTimeout que en el caso de que el servidor no esté disponible o tenga un error de lectura, la conexión no se bloquea para siempre. –
@metalideath - definitivamente, los omití solo por concisión, agregaré una nota en el ejemplo en caso de que alguien la use como una copia/pega. – user291701
@metalideath: estoy de acuerdo con usted ... Aquí acabo de responder según la pregunta ... hay muchas cosas en este mundo, tenemos que explorarlo ... –