我有以下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"
}
答案 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
部分。