当前位置: 首页 > 知识库问答 >
问题:

在mulesoft中的GET请求中传递数组参数

唐修明
2023-03-14

我在API中传递一个数组作为get请求的参数。我想把这个数组作为查询参数传递给HTTP请求者。

param1和param2通过流变量捕获,并与HTTP请求程序一起发送

对param3使用flow变量可以用其他内容覆盖中断

<http:request-builder>
                <http:query-param paramName="param1" value="#[flowVars.param1]" />
                <http:query-param paramName="param2" value="#[flowVars.param2]" />
                <http:query-param paramName="param3"value="#[flowVars.param3]" />

</http:request-builder>

共有1个答案

俞衡虑
2023-03-14

一个解决方案是从列表中创建一个映射,其中包含键'param1'、'param2'等。HTTP request builder允许使用映射生成所有查询param,并使用键作为名称。为了创建地图,我使用了DataWeave:

    <flow name="test-array-query-paramFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"/>
        <set-variable variableName="myArray" value="#[ [ 'Americas','00MA', 'Disruption', 'SomethingElse' ] ]" doc:name="Variable"/>
        <dw:transform-message doc:name="Transform Message">
            <dw:set-variable variableName="params"><![CDATA[%dw 1.0
%output application/java
---
( flowVars.myArray map {
  ("param" ++ ($$ as :number +1)) : $
} )  reduce ((val, acc = {}) -> acc ++ val)
]]></dw:set-variable>
        </dw:transform-message>
        <logger message="payload #[flowVars.params]" level="INFO" doc:name="Logger"/>
        <http:request config-ref="HTTP_Request_Configuration" path="/api" method="GET" doc:name="HTTP">
            <http:request-builder>
                <http:query-params expression="#[flowVars.params]"/>
            </http:request-builder>
        </http:request>
</flow>

启用HTTP wire日志,我们可以确认params是按预期生成的:

GET /api?param1=Americas&param2=00MA&param3=Disruption&param4=SomethingElse HTTP/1.1
 类似资料:
  • 问题内容: 我应该如何在jQuery Ajax请求中传递查询字符串值?我目前按照以下方式进行操作,但是我敢肯定有一种更清洁的方法,不需要我手动编码。 我已经看到了将查询字符串参数作为数组传递的示例,但是我看到的这些示例没有使用模型,而是直接使用。例如: 我更喜欢使用$ .ajax()格式,因为这是我习惯的格式(没有特别好的理由-只是个人喜好)。 编辑09/04/2013: 在我的问题结束(如“太过

  • 我应该如何在jQuery Ajax请求中传递查询字符串值?我目前是这样做的,但我肯定有一个更干净的方法,不需要我手动编码。 我见过查询字符串参数作为数组传递的示例,但这些示例没有使用模型,而是直接使用。例如: 我更喜欢使用$.ajax()格式,因为这是我习惯的格式(没有特别好的理由--只是个人偏好)。 编辑09/04/2013: 在我的问题结束后(因为“太本地化”),我发现了一个相关的(相同的)问

  • 我正在使用SoundCloud api创建一个应用程序,并尝试附加用户输入的字符串值,但它在界面中显示为null,我如何在url中附加该值? MainActivity.java SCService.java 搜索的字符串在我的SoundCloud.java类 我想在GET参数中附加那个SCURL字符串,但它显示了SCURL的null值,我如何实现这一点? 更新:我如上所述更改了代码,但出现了此错误

  • 我是Spring MVC的新手,我正在尝试将javascript中的日期作为请求参数传递 我的控制器看起来像- 我的问题是如何从javascript调用-如URL应该是什么样子 我需要一种方法来解析日期,以便Spring可以识别它吗?

  • 我正试图在post请求负载中传递数组。 有效载荷: 我所做的是: 但我得到的回应是: “找不到请求数据”

  • 我在一个资源上创建了一个GET方法,链接到一个Lambda函数,我正在尝试传递一些查询参数。 我希望传递给lambda变量