attributes.Header在Mulesoft中的http请求调用后丢失?

attributes.Header在Mulesoft中的http请求调用后丢失?,mule,mule-studio,mulesoft,mule4,Mule,Mule Studio,Mulesoft,Mule4,我在API中获得了一些属性,但在mule4中的HTTP请求连接器之后,所有属性都丢失了。 为什么会发生这种情况?连接器操作可能会将属性替换为操作的属性。如果需要保留以前的属性,则需要将其保存到变量。连接器操作可能会将这些属性替换为该操作的属性。如果需要保留以前的属性,则需要将它们保存到变量中。这是MuleSoft的默认行为。每当请求越过传输屏障时,它就会丢失现有属性。您需要在HTTP请求之前保留属性。这是MuleSoft的默认行为。每当请求越过传输屏障时,它就会丢失现有属性。您需要在HTTP请求

我在API中获得了一些属性,但在mule4中的HTTP请求连接器之后,所有属性都丢失了。
为什么会发生这种情况?

连接器操作可能会将属性替换为操作的属性。如果需要保留以前的属性,则需要将其保存到变量。

连接器操作可能会将这些属性替换为该操作的属性。如果需要保留以前的属性,则需要将它们保存到变量中。

这是MuleSoft的默认行为。每当请求越过传输屏障时,它就会丢失现有属性。您需要在HTTP请求之前保留属性。

这是MuleSoft的默认行为。每当请求越过传输屏障时,它就会丢失现有属性。您需要在HTTP请求之前保留属性。

在连接器的配置属性->高级选项卡中查找连接器配置(在本例中为HTTP连接器的“请求”操作),您将找到目标变量和目标值。如果您在目标中填入一个名称-这将进行扩展以避免覆盖Mule消息。如果您将其留空(默认设置),它将在现有消息的顶部保存消息(属性、负载),这就是您现在看到的。这反映了旧的mule 3功能,但有时您希望它保留现有的功能

因此,对于目标值,您可以准确地选择要保存的内容。。如果你只想要有效载荷:把它放进去。如果您同时需要有效负载和属性,我会使用“message”,因为这意味着您将获得保存在变量中的有效负载和属性。当然,您可能不想保存太多,所以可以随意输入任何您喜欢的dataweave表达式,这样您甚至可以从任何地方使用位创建一些东西,例如:

{
    statusCode: attributes.statusCode,
    headers: attributes.headers,
    payload: payload
}

在连接器的配置属性->高级选项卡中查找连接器配置(在本例中为HTTP连接器的“请求”操作),您将找到一个目标变量和目标值。如果您在目标中填入一个名称-这将进行扩展以避免覆盖Mule消息。如果您将其留空(默认设置),它将在现有消息的顶部保存消息(属性、负载),这就是您现在看到的。这反映了旧的mule 3功能,但有时您希望它保留现有的功能

因此,对于目标值,您可以准确地选择要保存的内容。。如果你只想要有效载荷:把它放进去。如果您同时需要有效负载和属性,我会使用“message”,因为这意味着您将获得保存在变量中的有效负载和属性。当然,您可能不想保存太多,所以可以随意输入任何您喜欢的dataweave表达式,这样您甚至可以从任何地方使用位创建一些东西,例如:

{
    statusCode: attributes.statusCode,
    headers: attributes.headers,
    payload: payload
}

是的,正如@aled所提到的。这就是当Mule跨越传输障碍(HTTP请求、JMS、Webservice等)时,它应该如何在Mule中工作。如果您想存储它以供进一步使用,则必须使用
vars.whateverField
将这些字段/值存储在变量中。Link非常古老,但它应用了相同/相似的概念。请通读@aled提到的是。这就是当Mule跨越传输障碍(HTTP请求、JMS、Webservice等)时,它应该如何在Mule中工作。如果您想存储它以供进一步使用,则必须使用
vars.whateverField
将这些字段/值存储在变量中。Link非常古老,但它应用了相同/相似的概念。请通读一遍