attributes.headers 在 Mulesoft 中调用 http 请求后迷路了?

attributes.headers getting lost after a http Request call in Mulesoft?

我在 API 中获取了一些属性,但在 mule 4 中的 HTTP 请求连接器之后所有属性都丢失了。 为什么会这样?

连接器操作可以用操作的属性替换属性。如果您需要保留以前的属性,则需要将它们保存到一个变量中。

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

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

因此对于目标值,您可以准确选择要保存的内容。如果您只想要有效负载:将其放入。如果您同时想要有效负载和属性 - 我' d 使用“message”,因为这意味着您将有效载荷和属性都保存在变量中。当然,您可能不希望保存那么多,所以请随意输入您喜欢的任何数据编织表达式 - 这样您甚至可以使用来自任何地方的位来创建一些东西,例如:

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