为什么我在逻辑应用程序中看到输出为 Octet-Stream?

Why Am I Seeing Output as Octet-Stream in Logic Apps?

在我的逻辑应用程序中,我使用 HTTP 连接器调用 XML REST API。 HTTP 连接器的输出显示为 Octet-Stream。但我从邮递员电话中知道 API returns XML.

我知道如何处理这个问题。我在 HTTP 之后放置了一个 Set Variable 组件,并将变量设置为输出值,这次是 XML - 我没有应用任何显式转换。

我只想知道什么会导致 HTTP 连接器输出 Octet-Stream 以及是否有更聪明的方法来处理这个问题。即使我在 Postman 对逻辑应用程序 HTTP 的调用中添加了相同的 headers,但这没有用。

谢谢。

Logic Apps 始终在收到的 HTTP 请求或响应中保留 Content-Type。因此,如果您的逻辑应用接收到 Content-Type 设置为 application/octet-stream 的内容,并且您在稍后的操作中包含该内容而不进行强制转换,则传出请求也会将 Content-Type 设置为 application/octet-stream .这样,逻辑应用程序可以保证数据在工作流中移动时不会丢失。但是,当状态在工作流中移动时,操作状态或输入和输出存储在 JSON object 中。

在响应连接器中,您可以添加 header as Content-Type as application/xml

为了保留某些数据类型,逻辑应用程序将内容转换为二进制 base64 编码的字符串,其中包含适当的元数据,这些元数据会保留自动转换的 $content 有效负载和 $content-type

xml() 将数据转换为 application/xml

参考converter-functions