我在逻辑应用程序中收到HTTP请求的重定向302错误。我正在调用OneIdentityServer以获取访问令牌。然后我调用Rest API,将访问令牌作为密钥授权的Header传递。我收到302重定向错误,响应标头信息,如Server=BIG IP,Location=/my.policy
通过Postman或SOAPUI触发的上述请求运行良好,我得到了成功的响应。但Azure Logic应用程序也同样失败了。
我也在功能应用程序中实现了上述场景。当我使用Postman从visualstudio运行函数应用程序代码时,它是工作文件。但当我在发布到Azure门户网站后测试相同功能的应用程序时,它会给出相同的错误。
我似乎和你有同样的问题。我发现单向对我不起作用,但如果它符合你的需求,也许你可以试试?
我在一篇博客文章中找到的解决方案是,首先将操作"Switch"添加到逻辑应用程序流中,然后将Switch配置为在HTTP成功和失败后运行。
其次,Switch操作应该在HTTP请求的statuscode输出时触发。如果statuscode等于302,则应该发出另一个HTTP请求,但URI是第一个HTTP请求的位置标头的输出。这使得我的逻辑应用程序产生了statuscode 200,但我的逻辑程序的响应是我需要登录才能访问API。
但也许值得为您的逻辑应用程序尝试一下这个解决方案?
如果你需要更深入的说明,下面是博客文章的链接:http://www.alessandromoura.com.br/2018/11/21/dealing-with-http-302-in-logic-apps/
您对此仍然有问题吗?这是我的http操作的屏幕截图:正在运行的http操作。我把我的URL放在一个变量中,因为它每次分页都会改变。我还发现,要使用第一个HTTP请求中的身份验证令牌,我需要解析主体才能访问令牌,以下是我用来解析请求中HTTP主体的模式,您可以在其中获得访问令牌:
{
"properties": {
"access_token": {
"type": "string"
},
"expires_in": {
"type": "string"
},
"expires_on": {
"type": "string"
},
"ext_expires_in": {
"type": "string"
},
"not_before": {
"type": "string"
},
"resource": {
"type": "string"
},
"token_type": {
"type": "string"
}
},
"type": "object"
}