Apache camel 参数为'toD'中包含值列表的URL将折叠为单个值

Apache camel 参数为'toD'中包含值列表的URL将折叠为单个值,apache-camel,Apache Camel,我有一个调用web服务的驼峰路由,该服务需要的参数之一是包含值列表的URL参数,即myhost/myuri?p1=foo&p1=bar中的p1 我把它放在toDURI中,因为参数值需要是动态的,即(为了简洁起见,省略了Camel参数和变量) Camel正在将其转换为p1=%5Bfoo%2C+bar%5D(url编码的p1=[foo,bar]),后端服务不接受该转换。我无法控制这个后端服务,也不能期望它的接口在将来发生变化 有没有办法强迫Camel以我想要的方式调用后端服务,而不是将具有多个值的参

我有一个调用web服务的驼峰路由,该服务需要的参数之一是包含值列表的URL参数,即
myhost/myuri?p1=foo&p1=bar
中的
p1

我把它放在
toD
URI中,因为参数值需要是动态的,即
(为了简洁起见,省略了Camel参数和变量)

Camel正在将其转换为
p1=%5Bfoo%2C+bar%5D
(url编码的
p1=[foo,bar]
),后端服务不接受该转换。我无法控制这个后端服务,也不能期望它的接口在将来发生变化


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

另一种方法是使用
CamelHttpQuery
头to和
to
,而不是
toD
端点

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

您可以发布整个路线吗?或者如何设置参数values@uvytautas该路径是从
direct:start
toD到该URL的直接路径。在实际代码中使用
$simple{param}
设置参数,但我也用硬编码参数重现了这个问题,所以这不是原因。至少在
toD
中是这样的。此外,如果需要使用特定于Camel的参数,如
throweExceptionOnFailure
,则可以将它们添加到
uri
,并在
CamelHttpQuery
头中包含后端参数。