Hi, setting the Content-type header for Http4 Camel Route - Message headers from the IN message are not being copied to the OUT message
Using Camel Version 2.12.2 example http4 route code: from("timer://foo?fixedRate=true&delay=0&period=10000") .setHeader(Exchange.CONTENT_TYPE, constant("application/json")) .setHeader(Exchange.HTTP_CHARACTER_ENCODING, constant("UTF-8")) .to("log:httpbefore.SYSTEM.COM?level=DEBUG&ShowHeaders=true&ShowBody=true") .to("http4://SERVER-remote.com/services/status/54024") .to("log:httpafter.SYSTEM.COM?level=DEBUG&ShowHeaders=true&ShowBody=true"); The Content Type and Character Encoding message headers are apparently being filtered out. Excerpt from Log with JSON Content Type IN message: [ main] RouteService DEBUG Starting child service on route: route1 -> Pipeline[[Channel[setHeader(Content-Type, application/json)], Channel[setHeader(CamelHttpCharacterEncoding, UTF-8)], Channel[sendTo(Endpoint[log://httpbefore.SYSTEM.COM?ShowBody=true&ShowHeaders=true&level=DEBUG])], Channel[sendTo(Endpoint[http4://server.remote.com/services/status/54024])], Channel[sendTo(Endpoint[log://httpafter.SYSTEM.COM?ShowBody=true&ShowHeaders=true&level=DEBUG])]]] if you look at the outgoing >> wire and headers lines you could see the Content-Type is missing: [mel-1) thread #0 - timer://foo] DefaultClientConnection DEBUG Sending request: GET /services/status/54024 HTTP/1.1 [mel-1) thread #0 - timer://foo] wire DEBUG >> "GET /services/status/54024 HTTP/1.1[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG >> "firedTime: Thu Jan 23 14:05:49 EST 2014[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG >> "breadcrumbId: ID-com-43559- 1390503945739-0-1[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG >> "Host: SERVER-remote.com:443[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG >> "Connection: Keep-Alive[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG >> "[\r][\n]" [mel-1) thread #0 - timer://foo] headers DEBUG >> GET /services/status/54024 HTTP/1.1 [mel-1) thread #0 - timer://foo] headers DEBUG >> firedTime: Thu Jan 23 14:05:49 EST 2014 [mel-1) thread #0 - timer://foo] headers DEBUG >> breadcrumbId: ID-com-43559- 1390503945739-0-1 [mel-1) thread #0 - timer://foo] headers DEBUG >> Host: SERVER-remote.com:443 [mel-1) thread #0 - timer://foo] headers DEBUG >> Connection: Keep-Alive [mel-1) thread #0 - timer://foo] wire DEBUG << "HTTP/1.1 200 OK[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "Cache-Control: private[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "Content-Type: text/html[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "Server: Microsoft-IIS/8.0[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "X-Powered-By: ServiceStack/3.962 Win32NT/. NET[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "Access-Control-Allow-Origin: *[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "X-AspNet-Version: 4.0.30319[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "X-Powered-By: ASP.NET[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "Access-Control-Allow-Origin: *[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "Access-Control-Allow-Headers: Content- Type[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "Date: Thu, 23 Jan 2014 19:05:51 GMT[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "Content-Length: 9750[\r][\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "[\r][\n]" [mel-1) thread #0 - timer://foo] DefaultClientConnection DEBUG Receiving response: HTTP/1.1 200 OK [mel-1) thread #0 - timer://foo] headers DEBUG << HTTP/1.1 200 OK [mel-1) thread #0 - timer://foo] headers DEBUG << Cache-Control: private [mel-1) thread #0 - timer://foo] headers DEBUG << Content-Type: text/html [mel-1) thread #0 - timer://foo] headers DEBUG << Server: Microsoft-IIS/8.0 [mel-1) thread #0 - timer://foo] headers DEBUG << X-Powered-By: ServiceStack/3.962 Win32NT/.NET [mel-1) thread #0 - timer://foo] headers DEBUG << Access-Control-Allow-Origin: * [mel-1) thread #0 - timer://foo] headers DEBUG << Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS [mel-1) thread #0 - timer://foo] headers DEBUG << X-AspNet-Version: 4.0.30319 [mel-1) thread #0 - timer://foo] headers DEBUG << X-Powered-By: ASP.NET [mel-1) thread #0 - timer://foo] headers DEBUG << Access-Control-Allow-Origin: * [mel-1) thread #0 - timer://foo] headers DEBUG << Access-Control-Allow-Headers: Content-Type [mel-1) thread #0 - timer://foo] headers DEBUG << Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS [mel-1) thread #0 - timer://foo] headers DEBUG << Date: Thu, 23 Jan 2014 19:05:51 GMT [mel-1) thread #0 - timer://foo] headers DEBUG << Content-Length: 9750 [mel-1) thread #0 - timer://foo] DefaultHttpClient DEBUG Connection can be kept alive indefinitely [mel-1) thread #0 - timer://foo] HttpProducer DEBUG Http responseCode: 200 [mel-1) thread #0 - timer://foo] wire DEBUG << "<!doctype html>[\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "<html lang="en-us">[\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "<head>[\n]" [mel-1) thread #0 - timer://foo] wire DEBUG << "<title>RequestStatus Snapshot of 1/23/2014 7: 05:51 PM</title>[\n]" is this expected behaviour? why Content-Type and Character-Encoding headers being dropped. do we need are they being filtered because of headerFilterStrategy option is set to null. does headerFilterStrategy when set to null filter out all setHeader? if the issue is headerFilterStrategy, is there example code somewhere that shows how not to filter out Content-Type. thanks, chasse -- View this message in context: http://camel.465427.n5.nabble.com/Http4-Set-Header-Content-Type-not-passing-through-to-the-HTTP-Request-tp5746414.html Sent from the Camel - Users mailing list archive at Nabble.com.