Azure Logic应用:For Each循环中的HTTP POST显示未经授权的错误

时间:2019-03-17 20:36:33

标签: azure-logic-apps

如果我们在For Each循环中处理多个文件并尝试对第三方进行HTTP POST,则逻辑应用程序就会出现问题。对于HTTP POST步骤,每个文件可以具有不同的url /用户名/密码。这就是为什么在我们的For Each中设置用户名/密码/ URL变量的原因。

测试:

  • 如果我们使用邮递员登录名测试所有这些URL,那么它将起作用。

  • 如果我们在逻辑应用程序中使用不同的用户名/密码/ url变量(但每次运行一次只能测试一个)来测试不同的文件,那么它将起作用。

  • 如果我们使用HTTP POST变量测试具有相同用户名/密码/ URL的文件,那么它将起作用。

  • 如果在HTTP POST步骤中使用不同的用户名/密码/ URL同时处理多个文件,则该操作将失败,并在中显示一些HTTP帖子,每个帖子均显示UNAUTHORIZED,但是如果我们检查为每个步骤中的每个文件都设置了正确的用户名/密码/ URL,这些都是正确的。

我们的结论:

如果http帖子在每个步骤中都获得了动态变量(用户名/密码/ URL),则只有一些http帖子可以工作。但是对于具有其他登录数据的文件,它将失败。看起来HTTP连接器无法处理具有不同变量的动态多个http调用。

我们的http发布步骤: enter image description here

每个步骤中我们的条件是否为true(所有登录名和url变量正确时,出现非正常错误):

enter image description here

我们在做错什么吗?请在我们尝试将其投入生产时提供帮助。

1 个答案:

答案 0 :(得分:1)

对于Logic Apps中的每个循环,默认情况下会并行运行其迭代-因此,如果您已设计工作流,以便在运行时根据原始值在相应的HTTP POST上确定正确的用户名和密码对循环开始的收集顺序-可能会产生您正在观察的行为。假设是这种情况,您是否尝试在启用“顺序”选项的情况下运行循环?

https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-control-flow-loops#sequential-foreach-loop