sp_invoke_external_rest_endpoint @结果解析错误

问题描述 投票:0回答:1

我有 azure sql 和 azure api 管理器,使用 sp_invoke_external_rest_endpoint 存储过程从 sql 调用各种 microsoft 服务,例如图 - Outlook、azure 地图和外部 Rest api。

对于其中 1 个调用,sp_invoke 存储过程失败,并出现 @result 无法解析 json 错误,该错误是从 APIM 传递回 SQL 的响应的一部分。请求按预期运行,外部端点(这是一个后调用)在第 3 方 API 上返回预期结果。

MS APIM 支持建议打开 sp_invoke 存储过程标头中的跟踪,以便确定导致问题的原因。由于跟踪位置是在响应中返回的,并且响应没有在 SQL 中返回并且只是失败,所以我无法获取 SQL 中的跟踪位置,也看不到 APIM 中的跟踪位置。

我已经在 Postman 中测试了第 3 方 api 调用,然后在 APIM 中进行了测试,并且调用按预期运行,没有错误。

当我在azure sql主过程中运行调用时,sp_invoke存储过程运行,然后间歇性地返回@result无法解析的错误(对于同一个第3方后调用,有时有错误,有时没有错误)。 @result 是 sp_invoke 响应的一部分,并在 APIM 中形成。

请注意,在 Postman 和 APIM 中测试时,调用按预期运行,因此响应格式正确。

请告知如何解决上述问题 - 我可以添加 APIM 策略来修复从 APIM 到 SQL 的响应的结果元素吗?

azure-sql-database
1个回答
0
投票
  1. 您遇到的具体错误是什么?
  2. 您可以尝试在@headers参数中指定“'Accept': 'text/*'”,这样响应就不会被解析为json
© www.soinside.com 2019 - 2024. All rights reserved.