我有一个生成JSON的API,如下所示:
)]}',
{
//JSON DATA
}
该//JSON DATA
是有效的JSON,但)]}',
向上顶是没有的。
当我尝试通过Logic App获取此数据时,我得到:
BadRequest. Http request failed: the content was not a valid JSON.
因此,一些相关问题:
1)无论如何,我可以告诉逻辑应用返回无效的JSON吗?
2)如何更好地调试问题?我碰巧知道响应无效,但是如果没有,该怎么办?我可以在某处看到原始数据吗?
3)全部通过Azure Web门户完成。有更好的工具吗?视觉工作室?
我还应该提到,如果我在返回XML而不是JSON的同一API上调用路由,则Logic App可以正常工作。因此,它绝对不特别喜欢JSON响应。
谢谢!
首先,请不要将三个问题作为单个问题发布。
问题1)。最好的办法是使API返回有效的JSON对象。由于数百万个原因,这很好。这里是一些:
如果API方面的更改不在您的范围之内,我认为您无能为力。如果幸运的话,HTTP操作成功(状态代码2xx),则可以尝试将查询操作与截断前几个字符的函数一起使用。它看起来像这样(我不知道确切的语法):Http Get操作的ID@Substring(body('myHttpGet'), 4, length(body('myHttpGet')) - 4)
在哪里myHttpGet
。
但是,如果可能的话,我再次强烈建议修复该API,这是问题的根本原因,而不是在此之后处理垃圾响应。
更新您可以做的另一件事是包装脏API。例如,您可以创建一个简单的Azure函数,该函数调用您不直接控制的API,并根据您的消耗需求清理响应。可以从Logic App轻松调用此Azure Function函数。它几乎不花钱(除非我们每个月要谈论数百万个请求)。唯一的缺点是延迟增加,这可能根本不是问题,请对其进行测试,看看它是否增加了不到100毫秒左右的时间。他们使我们的世界变得糟糕!
问题2)在Azure Logic App Web UI中,您可以查看执行详细信息,错误肯定会出现。
问题3)您要的是一种工具推荐,从定义上讲,这是很主观的事情,并且在StackOverflow上不合时宜。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句