我需要能够根据从http出站端点返回的http响应代码执行某些操作。例如,如果我得到500错误或302重定向或200.我需要一种方法来评估500,302,200。我知道如何使用Choice-When,但不知道如何使用Choice访问响应代码groovy或你建议的任何东西。
答案 0 :(得分:11)
Seba是对的,但这还不够。
默认情况下,如果在HTTP出站交互中检测到客户端或服务器错误(即响应代码> = 400),Mule会将响应视为错误并将中断流程执行并调用异常策略来处理有错误。
您需要在执行HTTP出站交互之前停用此行为,以便调用其余流(您的choice
路由器)。所以你需要这个:
<set-variable variableName="http.disable.status.code.exception.check"
value="true" />
在HTTP出站端点之前。
答案 1 :(得分:8)
您可以在HTTP出站端点之后立即使用以下表达式获取HTTP响应代码:
#[message.inboundProperties['http.status']]
同样在Groovy脚本中:
message.getInboundProperty('http.status')