es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tomar una acción cuando el estado de respuesta HTTP no es 200.

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown:

Soy nuevo en Spring Integration. Tengo un flujo simple que envía solicitudes a un recurso externo con varios intentos.

¿Lo que necesito hacer es tomar alguna acción (guardar datos en una base de datos) cuando llamar al recurso externo (después de reintentar) no es exitoso (el código de estado HTTP no es 200 OK)? ¿Cómo puedo lograrlo en mi flujo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Puede lograr esto agregando un ExpressionEvaluatingRequestHandlerAdvice a su flujo. Este asesor le permitirá evaluar la respuesta del recurso externo y tomar medidas según la respuesta.

    Por ejemplo, puede agregar lo siguiente a su flujo:

    ExpressionEvaluatingRequestHandlerAdvice advice = new ExpressionEvaluatingRequestHandlerAdvice();
    advice.setOnSuccessExpression("payload.statusCode == 200");
    advice.setFailureChannel("myFailureChannel");
    

    Esto evaluará la respuesta del recurso externo y si el código de estado no es 200, enviará el mensaje al canal myFailureChannel. Luego puede agregar un .handle() a este canal para tomar la acción que necesita.

    Para obtener más información sobre el ExpressionEvaluatingRequestHandlerAdvice, consulte la documentación de Spring Integration.

Comments are closed.