即使有404响应,也要继续执行流程

时间:2016-06-14 01:00:24

标签: mule

我有以下http请求:

<http:request config-ref="FlowVarsHostAndPort" path="/rest/bpo/evento" method="POST" doc:name="Envia movimentacoes para Elaw Correspondente">
                    <http:request-builder>
                        <http:header headerName="Content-Type" value="application/json"/>
                    </http:request-builder>
                </http:request>

这个服务在foreach中,当它返回200罚款时,但是当它返回404时会抛出异常,流程停止,我需要当服务返回404时我查看有效负载并确定它是否有效需要继续执行流程,我该如何实现呢?

我尝试使用catch异常策略但没有成功。

ps:当我正在寻找不存在的资源时,服务将返回404,这是响应的一个示例:

{
  "processo": "0009843-63.2016.8.13.0301",
  "mensagem": "Não foi possivel encontrar o processo"
}

1 个答案:

答案 0 :(得分:4)

在HTTP调用之前,需要禁用不抛出状态代码异常的行为。在这种情况下,我们可以使用状态代码查看HTTP的响应,并根据需要执行逻辑。

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

以其他方式

如果您只想限制为404.使用SuccessStatusCode验证器对HTTP 404说是成功响应之一。

 <http:request config-ref="" path="/rest/bpo/evento" method="POST" doc:name="Envia movimentacoes para Elaw Correspondente">
                <http:request-builder>
                <http:header headerName="Content-Type" value="application/json"/>
                </http:request-builder>
            <http:success-status-code-validator values="200,404"/>
  </http:request>

参考:https://docs.mulesoft.com/mule-user-guide/v/3.7/http-request-connector。查看此参考网址中的HTTP Response validation部分。