2016-01-20 44 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

相關問題