Отправка параметров динамического запроса в HTTP-запросе mulesoft - PullRequest
0 голосов
/ 07 октября 2018

У меня есть требование, при котором я должен отправлять параметры динамического запроса по требованию при отправке запроса http в mulesoft.

Я пишу выражение для обработки такого сценария

примерно так:

if (message.inboundProperties.'http.query.params'.param1! = Null)

flowVars.params.put ("param1", message.inboundProperties.'http.query.params'.param1);

if (message.inboundProperties.'http.query.params'.param2! = null)

flowVars.params.put ("param2", message.inboundProperties.'http.query.params'.param2);

if (message.inboundProperties.'http.query.params'.param3! = null)

flowVars.params.put ("param3 ", message.inboundProperties.'http.query.params'.param3);

// если это обязательно

flowVars.params.put (" api_key ", flowVars.apikey);

Создание хеш-карты, но она не работает в самом выражении

Может кто-нибудь помочь мне в этом

Любые выводы будут оценены.

1 Ответ

0 голосов
/ 17 декабря 2018

Вам необходимо установить начальную java.util.HashMap в переменной.Попробуйте что-то вроде этого:

<set-variable variableName="params" value="#[new java.util.HashMap()]" mimeType="application/java" doc:name="Set params"/>
 <expression-component doc:name="Expression"><![CDATA[if(message.inboundProperties.'http.query.params'.param1 != null)
    flowVars.params.put("param1", message.inboundProperties.'http.query.params'.param1);
]]></expression-component>
        <http:request config-ref="HTTP_Request_Configuration" path="/yourPath" method="{METHOD}" doc:name="HTTP {METHOD}">
            <http:request-builder>
                <http:query-params expression="#[flowVars.params]"/>
                <http:header headerName="${header.correlationid}" value="#[sessionVars.correlationId]"/>
            </http:request-builder>
        </http:request>
...