azure-logic-apps - LogicApps 场景登录、下载、压缩
问题描述
我使用表单身份验证(用户名和密码)访问第 3 方网站。登录后,我调用 HTTP 端点并在正文中接收 XML。XML 包含 1000 个 XML 元素。在每个元素中都有一个文本值,一个代码。对于这些代码中的每一个,我都会进一步调用不同的 HTTP 端点。响应更多的是 XML。收到所有 1000 个响应后,我想将所有 XML 响应作为文件添加到 zip 容器中,并使其可供下载。
我想看看 LogicApps 如何尽快做到这一点。
解决方案
- 调用第一个 HTTP 端点(身份验证设置为基本身份验证并输入用户/密码)
- 使用
xpath(xml(<body var here>), '//elementNameHere')
调用结果的 Body 上的表达式来获取返回值中包含代码的所有元素 - Foreach 超过这个返回值和
- 进行 HTTP 调用
- 将结果附加到数组变量,或连接到字符串变量。
- 将此值提交到 Blob 存储
但是,因为您在 foreach 循环中弄乱了 vars,所以您必须按顺序执行(将 Foreach 循环上的并发控制设置为“on”和“1”),否则您可能会得到一个糟糕的结果。
我不知道在此处“压缩内容”的方法,因此您可能必须将结果发送到使用 .Net zip lib 来完成工作的 Azure 函数(或 js zip lib,无论您的风格如何)并执行为您放入 blob 存储。
这在Durable Functions 领域也会容易得多,如果您愿意的话,我鼓励您研究一下。
您可能会考虑的一种温和替代方案是步骤 3.2,而是将该结果上传到 Blob 存储容器,然后通过 Azure 函数调用使整个容器可供下载,该调用获取容器并压缩内容(或 Blob 存储 URL对于容器已经为您执行此操作了吗?不确定)
推荐阅读
- python - Webscraping - TypeError:“NoneType”对象不可下标
- angular6 - 使用 Angular6 将 Excel Base 64 转换为 Excel
- html - 无法获取表单以验证所需的选择输入
- javascript - 不用搜索谷歌如何学习 Matplotlib ——
- webpack - Webpack ClosurePlugin - 闭包编译器中的错误:java.nio.file.InvalidPathException:非法字符 <:>
- php - 如果存在一行,则通过 PHP 站点插入到表中
- asp.net - ASP.NET MVC 应用程序在 IIS 中出现 404 错误,但相同代码库的不同分支可以工作,我可以在 Visual Studio 中运行它
- vb.net - 显示文件扩展名或通用字符串中包含的无效字符
- c# - '指定的可执行文件不是此操作系统平台的有效应用程序
- pine-script - 是否有从更高时间范围覆盖数据的功能?(PineScript)