I need to be able to perform certain actions based on the http response code I get back from an http outbound endpoint. For instance if I get a 500 error or a 302 redirect or a 200. I need a way to evaluate the 500, 302, 200. I know how to use Choice-When, but don't know how to access the response code using groovy or whatever you suggest.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You can get the HTTP response code with the following expression right after the HTTP outbound endpoint:
#[message.inboundProperties['http.status']]
Likewise in a Groovy script:
message.getInboundProperty('http.status')
回答2:
Seba is right but that is not enough.
By default, if an client or server error is detected in an HTTP outbound interaction (ie response code >= 400), Mule will treat the response as an error and will break the flow execution and call the exception strategy to deal with the error.
You need to deactivate this behaviour before doing the HTTP outbound interaction in order to have the rest of the flow (your choice
router) be called. So you need this:
<set-variable variableName="http.disable.status.code.exception.check"
value="true" />
before your HTTP outbound endpoint.