URL с параметром, содержащим список значений в `toD`, сворачивается в одно значение - PullRequest
0 голосов
/ 10 октября 2019

У меня есть маршрут Camel, который вызывает веб-службу, и один из параметров, ожидаемых этой службой, - это параметр URL, содержащий список значений, т.е. p1 в myhost/myuri?p1=foo&p1=bar.

Я помещаю это в toD URI, так как значения параметров должны быть динамическими, т.е. <camel:toD uri="http4://myhost/myuri?p1=foo&amp;p1=bar" > (пропущены параметры и переменные Camel для краткости).

Camel преобразует это в p1=%5Bfoo%2C+bar%5D (кодированный в URL p1=[foo, bar]), что не принимается серверной службой. У меня нет контроля над этим бэкэнд-сервисом, и я не могу ожидать, что его интерфейс изменится в будущем.

Есть ли способ заставить Camel вызывать бэкэнд-сервис так, как я хочу, вместо того, чтобы собирать параметрс несколькими значениями в виде массива?

1 Ответ

1 голос
/ 15 октября 2019

Другой подход заключается в использовании заголовка CamelHttpQuery для наряду с to, а не toD конечной точкой

<setHeader headerName="CamelHttpQuery"><simple>p1=foo&amp;p1=bar</simple></setHeader>
<to uri="http4://myhost/myuri">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...