Apache camel 参数为'toD'中包含值列表的URL将折叠为单个值
我有一个调用web服务的驼峰路由,该服务需要的参数之一是包含值列表的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以我想要的方式调用后端服务,而不是将具有多个值的参
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&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
头中包含后端参数。