2016-01-20 58 views
1

里面的Camel头文件中提取org.restlet.http.headers值我试图从骆驼路由中的org.restlet.http.headers头文件集合中提取一个值。从.choice()

我的传入POST有一个名为IncomingRequestType的http头属性:ABCD。 骆驼在交换头集合中移动它,但它被埋在org.restlet.http.headers里面,它本身就是头文件的集合。

.process(new Processor() { 
    public void process(Exchange exchange) throws Exception { 
     org.restlet.util.Series<Header> httpHeaders = null; 
     httpHeaders = (Series<Header>) exchange.getIn().getHeader("org.restlet.http.headers"); 
     String reqType = httpHeaders.getValues("IncomingRequestType").toString(); 
}}) 

以外的处理我需要访问一个.choice内的IncomingRequestType()的()时

例如:

我可以使用下面的代码中提取的方法中的值我希望能够做到:

.choice() 
    .when(header("org.restlet.http.headers")["IncomingRequestType"]).isEqualTo("ABCD")) 

有关如何做到这一点的任何建议。我尝试过创建谓词,但无法获得合适的解决方案。

回答

0

这可以在simple language来完成:

.choice() 
    .when(simple("${in.header.org.restlet.http.headers[IncomingRequestType]} == 'ABCD'")) 
+0

我不认为它会奏效。我试过了,它搜索名为“org.restlet.http.headers [IncomingRequestType]”的标题 – Cipous

相关问题