2016-08-03 76 views
1

我有一個做即Apache的駱駝交換身體URI查詢參數

from(...).setHeader(Exchange.HTTP_METHOD, constant(POST)).to("http4://myUrl?..."); 

HTTP POST請求的請求URL包含查詢參數(不尋常的文章中,我知道了Apache的駱駝路線,但我別無選擇這裏),我需要從存儲在身體上的交換的細節中填充。

即身體是像這樣一個POJO:

public class Params { 
    String param1; 
    int param2; 
    .... 
    //etc. etc. including getters and setters 
} 

其中,每個字段或者是一個原始或字符串,並直接指的是等效的查詢參數:

http4://myUrl?param1=...&param2=...&... 

有一種方法我可以避免必須手動定義URL上的每個參數,而是自動將交換機構映射到正在請求的查詢參數上?

我需要這樣做的原因是,一些查詢參數是可選的,應根據交換機構的內容填充。

+0

您可以設置標頭Exchange.HTTP_QUERY與由& –

+0

分隔的查詢參數這仍然是手動,我想知道是否有一種方法來對象映射到正文查詢參數,而無需我在代碼中指定每一個。如果不是這樣做的好方法,謝謝。 – James

+0

不,沒有將消息正文字段自動映射到查詢參數的魔術自動映射。 –

回答

1

您可以使用查詢參數分隔設置標頭Exchange.HTTP_QUERY。

它不可能從消息體自動映射其字段到URI參數(不包括魔術)。您需要構建一些計算URI查詢的代碼,&將值分開,並將其設置爲HTTP_QUERY標題。