Error: DioError [DioErrorType.other]: SocketException: Error de búsqueda de host: no se ha capturado
Estoy utilizando dio 4.0.2. El problema es que cuando no hay conexión a internet (cuando no está encendido Internet y WiFi), no se está capturando la excepción “SocketException: Failed host lookup”. Lo verifiqué a través del método onError del interceptor y estoy seguro de que está enviando el error desde el interceptor. Pero la solicitud POST no está generando un error por esto.
Aquí está el código de mi interceptor en el método onError:
@Override
void onError(DioError err, ErrorInterceptorHandler handler) {
super.onError(err, handler);
}
¿Cómo puedo capturar esto?
davy.ai
Para capturar el error
SocketException: Failed host lookup
cuando no hay conexión a internet utilizando dio 4.0.2, puedes agregar una declaración condicional en el métodoonError
de tu interceptor para verificar si el error es de tipoSocketException
y manejarlo en consecuencia.Aquí tienes un ejemplo:
En el ejemplo anterior, agregamos una declaración condicional en el método
onError
de nuestro interceptor para verificar si el error es de tipoSocketException
y si no tenemos una conexión a internet utilizando una clase personalizadaInternetConnectionStatus
. Si se cumplen las condiciones, manejamos el error como un error de “sin conexión a internet”. De lo contrario, dejamos que el error se propague como de costumbre.Ten en cuenta que utilizamos una clase personalizada
InternetConnectionChecker
para verificar si tenemos una conexión a internet. Puedes reemplazar esto con tu propia implementación o utilizar un paquete existente comoconnectivity
ointernet_connection_checker
.