Apache Camel交换体到URI查询参数

时间:2016-08-03 11:06:03

标签: post apache-camel query-parameters

我有一个正在发出HTTP POST请求的apache camel路由,即

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

请求URL包括查询参数(我知道POST不常见,但我别无选择),我需要从存储在正文中的交换细节中填充。

即。身体像POJO一样:

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

其中每个字段都是基元或字符串,并直接引用等效的查询参数:

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

有没有办法可以避免手动定义URL上的每个参数,而是自动映射交换体以查询正在发出请求的参数?

我需要这样做的原因是某些查询参数是可选的,应该根据交换体的内容进行填充。

1 个答案:

答案 0 :(得分:1)

您可以使用分隔的查询参数设置标头Exchange.HTTP_QUERY。

它不可能从消息体自动映射其字段到URI参数(不包括魔法)。您需要构建一些代码来计算URI查询,&分隔值,并将其设置为HTTP_QUERY标题。