5
Estoy tratando de obtener el uso de la función setConnectTimeout así:HttpUrlConnection setConnectTimeout no funciona?
protected HttpURLConnection getConnection() throws SocketTimeoutException, IOException{
Log.d("HTTPRequest", address);
URL page = new URL(address);
HttpURLConnection connection = (HttpURLConnection) page.openConnection();
connection.setUseCaches(cacheResult);
connection.setConnectTimeout(3000);
connection.connect();
return connection;
}
y luego:
public String getTextData() throws InternetConnectionUnavailableException {
try{
HttpURLConnection conn = getConnection();
StringBuffer text = new StringBuffer();
InputStreamReader in = new InputStreamReader((InputStream) conn.getContent());
BufferedReader buff = new BufferedReader(in);
String line;
while (true) {
if((line = buff.readLine()) != null){
text.append(line);
}else{
break;
}
}
return (text.toString());
} catch (SocketTimeoutException socketTimeoutException) {
throw new InternetConnectionUnavailableException();
} catch (IOException ioException) {
throw new InternetConnectionUnavailableException();
}
}
Sin embargo, nunca se interpone en el "retén (SocketTimeoutException SocketTimeoutException)" bloque. ¿Qué pasa aquí?
P.S. Para las pruebas hice una página que pone a mi servidor en reposo durante 10 segundos.
Muy bien! Parece estar funcionando, pero no con.setRequestMethod ("HEAD"); ¿ensuciar algo? – user1462299
Como supuse debido a esta línea anterior, no se pudieron cargar los enlaces normales. Simplemente eliminé este y agregué conn.connect(); Lanza ahora una excepción IOException después de que se agote el tiempo de espera - No lo hago si es IOException o cualquier otra cosa a menos que funcione – user1462299
Parece que el tiempo de espera no funciona si la red se desconecta a mitad de la descarga. – NoBugs