2016-05-13 5 views
1

У меня есть сервер, для которого требуются все параметры, отправленные на url, даже если значение равно null, однако кажется, что конечная точка HTTP отправляет только запрос-параметр, когда значение не является нулевым.Mulesoft ESB - Отправить запрос-параметр, даже если значение равно null

Пример: Мне нужен запрос, чтобы быть: http://example.com/?v1=&v2=&v3=something&v4=

Но, кажется, создает запрос как: http://example.com/?v3=something

Пример кода:

<http:request-builder> 
<http:query-param paramName="v1" value="#[message.inboundProperties.'http.query.params'.v1]"/> 
<http:query-param paramName="v2" value="#[message.inboundProperties.'http.query.params'.v2]"/> 
<http:query-param paramName="v3" value="#[message.inboundProperties.'http.query.params'.v3]"/> 
<http:query-param paramName="v4" value="#[message.inboundProperties.'http.query.params'.v4]"/> 
</http:request-builder> 

ответ

1

насчет установки его к пустой строке, используя вместо этого тернарный оператор. Пример:

<http:query-param paramName="v1" value="#[message.inboundProperties.'http.query.params'.v1 != null ? message.inboundProperties.'http.query.params'.v1 : '']"/> 
+0

Кажется не работает ... как я могу зарегистрировать URL-адрес, который он строит? –

0

Какую версию вы используете? Я считаю, что это было исправлено в этом issue. Однако ожидаемый URL-адрес в этом случае будет http://example.com/?v1&v2&v3=something&v4.

+0

Использование 3.7.3 ... Это может быть то, что происходит ... Я протестировал сервер и, видимо, он также ожидает знак равенства для каждой переменной. Я думаю, что они вручную анализируют url ... так что в этот момент мне, возможно, придется отказаться и построить параметры запроса вручную. Первоначально я предполагал, что сервер, к которому я подключаюсь, соответствует RFC3986. –

Смежные вопросы