如何读取在流程中创建的变量并将其设置为HTTP请求组件中的标头?

时间:2019-06-05 18:07:09

标签: mule anypoint-studio dataweave mule4

我一直在努力访问流程中定义的变量,现在我需要将其用作HTTP请求组件中授权标头的一部分。到目前为止,我已经尝试了以下方法:

"Bearer " ++ vars.myVar
"Bearer " ++ #[vars.myVar]
"Bearer #[vars.myVar]"

它们都不起作用,因为我能够在控制台日志中看到原始输入,内容如下:

POST /webserviceurl HTTP/1.1
accept: application/json
authorization: "Bearer " ++ #[vars.myVar]
x-correlation-id: 06386edf-93a9-4d38-a117-d971f9eb7c11
Host: test.salesforce.com:443
User-Agent: AHC/1.0
Connection: keep-alive
Content-Type: application/json

这是HTTP请求配置的定义:

<http:request-config name="HTTP_Request_configuration" doc:name="HTTP Request configuration" doc:id="ad136a30-3119-44d1-ac13-8163214df28b" >
    <http:request-connection protocol="HTTPS" host="${SalesforceBaseUrl}" port="443" >      
    </http:request-connection>
    <http:default-headers >
        <http:default-header key="content-type" value="application/json" />
        <http:default-header key="accept" value="application/json" />
        <http:default-header key="Authorization" value='"Bearer " ++ #[vars.myVar]' />
    </http:default-headers>
</http:request-config>

我在这里想念的是什么?在那里访问变量的正确方法是哪种?

1 个答案:

答案 0 :(得分:3)

您的值不能混合,它可以是表达式或文字字符串(记录器中除外)。

因此在这种情况下应该是:

#["Bearer " ++ vars.myVar]