具有包含“ toD”中的值列表的参数的URL被折叠为单个值

时间:2019-10-10 15:41:17

标签: apache-camel

我有一个调用Web服务的骆驼路线,该服务期望的参数之一是包含值列表(即)的URL参数。 p1中的myhost/myuri?p1=foo&p1=bar

我将其放在toD URI中,因为参数值需要是动态的,即。 <camel:toD uri="http4://myhost/myuri?p1=foo&amp;p1=bar" >(为简便起见,省略了驼峰参数和变量)。

骆驼将其转换为p1=%5Bfoo%2C+bar%5D(URL编码为p1=[foo, bar]),后端服务不接受。我无法控制此后端服务,不能指望其接口将来会更改。

有什么办法可以强制Camel以我想要的方式调用后端服务,而不是将具有多个值的参数收集为类似数组的格式?

1 个答案:

答案 0 :(得分:1)

另一种方法是将CamelHttpQuery标头与to而非toD端点一起使用

<setHeader headerName="CamelHttpQuery"><simple>p1=foo&amp;p1=bar</simple></setHeader>
<to uri="http4://myhost/myuri">