【问题标题】:Azure Logic App - Receive file from http requestAzure 逻辑应用 - 从 http 请求接收文件
【发布时间】:2019-11-06 02:48:57
【问题描述】:

我有一个返回 PDF 报告的 ASP.Net 处理程序。我希望 Azure 逻辑应用请求文件,然后将其作为附件添加到电子邮件中。

当我尝试通过 HTTP 请求执行此操作时,我收到以下错误:

错误请求。 Http 请求失败,因为出现错误:“将内容复制到流时出错。”

如果我使用浏览器发出请求,我会收到 HTTP 200 响应并且它可以正常工作。查看来自 chrome 和 fiddler 的请求/响应标头。

我确信我可以使用 Azure 函数来解决此问题,以获取文件 blob 并将其传递到电子邮件阶段,但它显示在文档中逻辑应用可以处理流和 base64 编码。我在这里遗漏了什么吗?

【问题讨论】:

  • 您的文件是否存储为 blob?
  • 我认为逻辑应用不支持它(由逻辑应用专家确认)。过去,我设法通过将文件作为 base64 编码主体发送来解决此问题,然后逻辑应用程序将正确获取文件内容。
  • @GeorgeChen 响应流式传输文件。我只是将“身体”称为 blob。

标签: azure azure-logic-apps


【解决方案1】:

我尝试在 HTTP 请求中使用以下静态结果来尽可能地模仿 HTTP 请求/流。我想这归结为您需要以包含内容和内容类型的方式设计流的主体,就像我在下面使用我的模型 HTTP 请求所做的那样

pdf 内容

内容类型:application/pdf 和 application/octet-stream 工作

发送和电子邮件操作:

已发送电子邮件

展望结果:

【讨论】:

  • 我可能误解了这个问题,但我希望它有所帮助。
  • 感谢@AdAstra,这让我开始写信。一旦我将我的处理程序转换为返回一个 JSON 对象而不是直接流式传输文件,我就可以让它工作得很快。我最终也遵循了您在对象中包含任何其他属性(例如文件名)的做法,而不是在响应对象中添加标头,因为之后我很难在逻辑应用程序中访问它们。
猜你喜欢
  • 2017-01-21
  • 1970-01-01
  • 2019-02-15
  • 2022-08-20
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 2019-08-09
  • 2020-02-05
相关资源
最近更新 更多