Отправка параметров динамического запроса в HTTP-запрос mulesoft

У меня есть требование, когда я должен отправлять параметры динамического запроса по запросу при отправке 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);

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

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

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


person Deep Sharma    schedule 07.10.2018    source источник


Ответы (1)


Вам нужно будет установить начальный 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>
person greglorious_85    schedule 17.12.2018