如何处理http连接器响应代码

时间:2019-03-08 21:55:13

标签: mule mule-studio anypoint-studio mulesoft

当前在m子中,我有一个流程流程,该流程使http连接到elasticsearch。我们正在使用滚动API,所有连接都很好。我正在尝试创建一个流程来处理404 status code,如果scroll_id在请求中过期,它将返回该流程。目前,我在http连接器的"Failure Status Code Validator"部分的高级设置中添加了代码404。我要实现的是,当从该特定的http调用返回404(我们知道这是由于scroll_id到期)时,我们向另一个网关发出了另一个http调用。因此,在404时,再次调用http链接到单独的链接。

先谢谢了。我仍在学习xml代码,但是如果您在GUI上有任何pointstudio的经验,那将是非常有用的。

1 个答案:

答案 0 :(得分:1)

我是通过在http连接器的“高级”标签下设置success status code validator来实现的。

在设置此值之前,获取404时,mulesoft将针对错误代码4xx引发其默认异常。目前,我仍然不知道如何覆盖它或设置其他内容,这可能是由于我要接管的这个特定项目。但是,在成功代码验证器部分,我将值设置为200,404,这意味着状态码200和404可以传递到流程中的下一个组件。默认情况下,如果您未设置404,则mulesoft再次将其默认的内置错误消息抛出为状态码404。因此,由于我告诉mulesoft将此视为正常,因此可以传递到项目中的下一个组件。在对外部休息服务的出站http调用之后的下一个流程中,我有一个choice-component来评估http调用的状态代码是什么。为此,您可以使用以下命令:#[message.inboundProperties.'http.status' == '404'],这就是说,如果状态码为404,则使用此特定流路径,否则使用默认路径。

enter image description here