0

我需要能够根据从 http 出站端点返回的 http 响应代码执行某些操作。例如,如果我收到 500 错误或 302 重定向或 200。我需要一种方法来评估 500、302、200。我知道如何使用 Choice-When,但不知道如何使用访问响应代码groovy 或任何你建议的。

4

2 回答 2

11

Seba 是对的,但这还不够。

默认情况下,如果在 HTTP 出站交互中检测到客户端或服务器错误(即响应码 >= 400),Mule 会将响应视为错误,并会中断流程执行并调用异常策略来处理错误。

您需要在进行 HTTP 出站交互之前停用此行为,以便choice调用流的其余部分(您的路由器)。所以你需要这个:

<set-variable variableName="http.disable.status.code.exception.check"
              value="true" />

在您的 HTTP 出站端点之前。

于 2013-05-10T15:58:06.773 回答
9

您可以在 HTTP 出站端点之后使用以下表达式获取 HTTP 响应代码:

#[message.inboundProperties['http.status']]

同样在 Groovy 脚本中:

message.getInboundProperty('http.status')
于 2013-05-10T13:05:55.087 回答