My understanding after reading http://camel.apache.org/http4.html is, if
you want to handle all HTTP status response codes yourself using message
headers, you should add throwExceptionOnFailure=false to your endpoint.
Otherwise you can get the status code from the exception itself e.g.
exception.statusCode == 400.

HTH,
Doug


On Wed, Jul 12, 2017 at 8:41 AM, Ranabroto <ranabroto.gh...@globalcharge.com
> wrote:

> Hello I have below route
> <route id="route-send" autoStartup="true">
>         <from uri="direct:send-test"/>
>         <onException>
>
> <exception>org.apache.camel.http.common.HttpOperationFailedException</
> exception>
>                 <handled>
>                         <constant>true</constant>
>                 </handled>
>                 <log message="ALL HEADER: ${headers}"/>
>                 <log message="HTTP RESPONSE: ${header.
> CamelHttpResponseCode}"/>
>                 <choice>
>                         <when>
>                                 <simple>${header.CamelHttpResponseCode}
> == '400' </simple>
>                                 do something
>                         </when>
>                 </choice>
>         </onException>
>         <to uri="bean:notProcessVeoo?method=preppareRequest"/>
>         <to
> uri="https4:{{LIVE_AUTH_RESPONSE_HOST}}:{{LIVE_AUTH_
> RESPONSE_PORT}}/{{LIVE_AUTH_RESPONSE_CONTEXT_PATH}}"/>
> </route>
>
> This giveing me below exception
> Failed delivery for (MessageId:
> ID-rgdev-globalcharge-com-57715-1499872966816-3-10 on ExchangeId:
> ID-rgdev-globalcharge-com-57715-1499872966816-7-1). Exhausted after
> delivery
> attempt: 1 caught:
> org.apache.camel.http.common.HttpOperationFailedException: HTTP operation
> failed invoking https://api.example.com/send?param=value with statusCode:
> 400
>
> So i am catching that exception and want to do something when HTTP Response
> code is 400. But unfortunately ${header.CamelHttpResponseCode} is printing
> nothing :(, in-fact notice i have printed all header and dont see any HTTP
> response code header. Could you please point where i am going wrong why
> that
> header is getting lost, because from exception its clear that its failing
> with HTTP Response code 400, why camel is not storing that in header?
>
>
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/header-
> CamelHttpResponseCode-getting-lost-tp5806828.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>

Reply via email to