Tengo un método (a continuación) que tira hacia abajo y devuelve el origen de una página web como una cadena. Todo funciona bien, pero cuando la conexión se agota, el programa lanza una excepción y sale. ¿Existe un método mejor para hacer esto que le permita volver a intentar el tiempo de espera, o hay una forma de hacerlo dentro de este método?Vuelva a intentar una conexión en el tiempo de espera en Java
public static String getPage(String theURL) {
URL url = null;
try {
url = new URL(theURL);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
exitprint();
}
InputStream is = null;
try {
is = url.openStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
exitprint();
}
int ptr = 0;
StringBuffer buffer = new StringBuffer();
try {
while ((ptr = is.read()) != -1) {
buffer.append((char)ptr);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
exitprint();
}
return buffer.toString();
}
Gracias! Definitivamente me puso en el camino correcto. El único problema con el que me encontré fue que el búfer estaba fuera de alcance en la declaración de devolución, así que lo mantuve al pie de la declaración while, antes del catch. – InsanityOnABun
Es posible que también desee verificar el código de respuesta HTTP. url.getResponseCode(); –