【问题标题】:attributes.headers getting lost after a http Request call in Mulesoft?在 Mulesoft 中调用 http 请求后,attributes.headers 会丢失吗?
【发布时间】:2021-03-08 16:48:50
【问题描述】:
我在 API 中获取了一些属性,但在 mule4 中的 HTTP 请求连接器之后所有属性都丢失了。
为什么会这样?
【问题讨论】:
标签:
mule
mule-studio
mulesoft
mule4
【解决方案1】:
查看连接器的配置属性 -> 连接器配置的高级选项卡(在本例中为 HTTP 连接器的“请求”操作),您会发现 目标变量 和 目标值。如果您用名称填写目标 - 这会丰富内容以避免覆盖 Mule 消息。如果您将其留空(默认),它会将消息(属性、有效负载)保存在现有消息的顶部 - 这就是您现在所看到的。这反映了旧的 mule 3 功能,但有时您希望它保留您所拥有的东西。
因此,对于 目标值,您可以准确选择要保存的内容。如果您只想要有效负载:把它放进去。如果您想要有效负载和属性 - 我会使用“消息”因为这意味着您可以将有效负载和属性都保存在变量中。当然,您可能不想保存那么多,所以请随意放入您喜欢的任何 dataweave 表达式 - 这样您甚至可以使用来自任何地方的位创建一些东西,例如:
{
statusCode: attributes.statusCode,
headers: attributes.headers,
payload: payload
}
【解决方案2】:
连接器操作可以用操作的属性替换属性。如果您需要保留以前的属性,则需要将它们保存到变量中。
【解决方案3】:
这是 MuleSoft 的默认行为。每当请求越过传输障碍时,它就会丢失现有属性。您需要在 HTTP 请求之前保留属性。