He estado utilizando la biblioteca de envío de Databinder en un cliente para una API REST-ish simple. Yo sé cómo detectar si recibo una respuesta HTTP con un estado de error:Biblioteca Scala Dispatch: cómo manejar la falla de conexión o el tiempo de espera?
Http x (request) {
case (200, _, _, content) => successResult(content())
case (404, _, _, _) => notFoundErrorResult
case (_, _, _, _) => genericErrorResult
}
Pero, ¿cómo puedo distinguir una respuesta errónea de un fracaso para obtener ninguna respuesta en absoluto, debido a un dominio o el fracaso no válido para conectar ? ¿Y hay alguna forma de implementar un tiempo de espera mientras se sigue utilizando la semántica sincrónica? Si hay algo relevante en la API, me lo perdí.
Gracias ... pero yo no creo que el ExceptionListener hace lo que yo quiero . Quiero hacer que la solicitud HTTP devuelva algún valor X si obtuvo la excepción E. Parece que ExceptionListener no devuelve nada, se define como Catcher [Unidad]. Simplemente se llama y luego Http vuelve a lanzar la excepción. Entonces, creo que tengo que hacer una prueba/captura después de todo, que es lo que quería evitar. –