elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Controlar TimeOut en conexión
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Controlar TimeOut en conexión  (Leído 5,807 veces)
imaginawireless

Desconectado Desconectado

Mensajes: 164


......... convivimos entre ondas ..........


Ver Perfil
Controlar TimeOut en conexión
« en: 19 Febrero 2012, 02:09 am »

Hola gente. A ver si alguine puede echarme un cable. Tengo este código para comprobar la respuesta http de una URL...

Citar
public int compRespUrl(String direcUrl) throws IOException {
                try{
                    URL url = new URL(direcUrl);
                    int responseCode = ((HttpURLConnection) url.openConnection()).getResponseCode();
                    return responseCode;
                }catch(Exception e){
                    System.out.println(e);
                    return 0;
                }

El problema es que cuando la URL no está disponible, me tarda mucho en dar Time Out. ¿Como puedo controla el tiempo máximo de conexión?

Gracias.


En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Controlar TimeOut en conexión
« Respuesta #1 en: 19 Febrero 2012, 02:23 am »

Necesitas abrir la conexión a través de URLConnection[Ejemplos] Y usar el método setConnectTimeout()

Saludos


« Última modificación: 19 Febrero 2012, 02:25 am por RyogiShiki » En línea

imaginawireless

Desconectado Desconectado

Mensajes: 164


......... convivimos entre ondas ..........


Ver Perfil
Re: Controlar TimeOut en conexión
« Respuesta #2 en: 19 Febrero 2012, 13:38 pm »

Pero el problema es que con "URLConnection", no tengo  el método "getResponseCode()". He buscado en el doc, pero ne veo ningún método que me devuelva la respuesta si no es usando "HttpURLConnection".

Solo se me ocurre esto tal como me has dicho, pero me da una excepción y no encuentro como solucionarla.

Citar
public int compRespUrl(String direcUrl) throws IOException {
        try{
            URL url = new URL(direcUrl);
            int espera=3000;
            int responseCode = (((HttpURLConnection) url.openConnection()).setConnectTimeout(espera)).getResponseCode();
            return responseCode;
        }catch(Exception e){
            return 0;
        }
    }
« Última modificación: 19 Febrero 2012, 14:02 pm por imaginawireless » En línea

imaginawireless

Desconectado Desconectado

Mensajes: 164


......... convivimos entre ondas ..........


Ver Perfil
Re: Controlar TimeOut en conexión
« Respuesta #3 en: 21 Febrero 2012, 13:09 pm »

Vale chicos, la cosa quedó así y funciona perfectamente.

Gracias "RyogiShiki"

Citar
public int compRespUrl(String direcUrl) throws IOException {
        try{
            HttpURLConnection con = (HttpURLConnection) new URL(direcUrl).openConnection();
            con.setConnectTimeout(5000); //establecemos timeout a 5 segundos
            return con.getResponseCode();

            /*tambien podemos recoger la respuesta en un String
            */return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
           
            }catch (java.net.SocketTimeoutException e){
                System.out.println(e);
                return 0;
            }catch (java.io.IOException i){
                System.out.println(i);
               return 0;
            }
    }
En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Controlar TimeOut en conexión
« Respuesta #4 en: 23 Febrero 2012, 04:41 am »

Bien, me alegra que te haya servido.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Servlet (Connection Timeout)
Java
BlaineMonkey 4 5,298 Último mensaje 17 Junio 2010, 10:32 am
por BlaineMonkey
Timeout en mètodo connect de SocketChannel
Java
RyogiShiki 0 2,295 Último mensaje 16 Agosto 2011, 04:28 am
por RyogiShiki
TCP timeout and retransmission(libro TCP Illustrated vol 1, Stevens)
Redes
eternoneofito 3 4,005 Último mensaje 22 Agosto 2011, 22:06 pm
por madpitbull_99
Read timeout
Java
Xedrox 2 2,150 Último mensaje 5 Septiembre 2014, 20:45 pm
por Chuidiang
Controlar Timeout mediante un EJB « 1 2 »
Java
routerico 12 6,000 Último mensaje 2 Febrero 2015, 21:04 pm
por Usuario Invitado
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines