我有一个调用Web服务的骆驼路线,该服务期望的参数之一是包含值列表(即)的URL参数。 p1
中的myhost/myuri?p1=foo&p1=bar
。
我将其放在toD
URI中,因为参数值需要是动态的,即。 <camel:toD uri="http4://myhost/myuri?p1=foo&p1=bar" >
(为简便起见,省略了驼峰参数和变量)。
骆驼将其转换为p1=%5Bfoo%2C+bar%5D
(URL编码为p1=[foo, bar]
),后端服务不接受。我无法控制此后端服务,不能指望其接口将来会更改。
有什么办法可以强制Camel以我想要的方式调用后端服务,而不是将具有多个值的参数收集为类似数组的格式?
答案 0 :(得分:1)
另一种方法是将CamelHttpQuery
标头与to
而非toD
端点一起使用
<setHeader headerName="CamelHttpQuery"><simple>p1=foo&p1=bar</simple></setHeader>
<to uri="http4://myhost/myuri">