如何使用Apache Camel转储使用HTTP组件发送的HTTP正文和标头

Arc*_*her 6 java groovy apache-camel

如何使用此路由转储使用Apache Camel HTTP组件发送的HTTP正文和标头:

   from('direct:abc').
   setHeader(Exchange.HTTP_URI, constant("${config.gnutch.solr.coreUrl}/select")).
   setHeader(Exchange.HTTP_QUERY, constant("q=${q}&wt=xml")).
   setHeader(Exchange.CONTENT_TYPE, constant('application/xml')).
   setHeader(Exchange.HTTP_METHOD, constant('GET')).
   setBody(constant(null)).
   to("http://null")
Run Code Online (Sandbox Code Playgroud)

这是groovy中的Camel DSL代码.那可能吗?

Kal*_*dre 8

你尝试过类似的东西吗?

from("direct:abc")
 .to("http://domain.com/")
 .to("log:DEBUG?showBody=true&showHeaders=true")
Run Code Online (Sandbox Code Playgroud)

此外,HTTP组件文档建议您可以HttpServletRequest从交换中提取,如,

HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class);
Run Code Online (Sandbox Code Playgroud)

你可以选择做,

from("direct:abc").to("http://domain.com").process(new Processor() {
    public void process(Exchange exchange) throws Exception {
        HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class);
        // Log request parameters
    }
});
Run Code Online (Sandbox Code Playgroud)


gna*_*rus 6

这会有所帮助,请在日志消息中使用:

$ {headers}

要么

$ {in.headers}

这将打印所有传入的标题。

在此处结帐:http : //camel.apache.org/simple.html

范例: