我已在 Azure API 管理中添加了 REST API 服务。我已遵循此链接Azure APIM中给出的所有步骤。 API 在本地运行良好。通过发布的 URL 访问时它也可以工作。
我还添加了 OAuth2.0 安全性,效果很好。
我的问题是当我尝试通过 APIM 发布的 URL 访问操作时,该服务给出响应 200 且内容为空。
有人可以帮忙吗。
当人们无意中删除了顶级策略并删除了适用于所有 api 上的所有操作的主要转发请求策略时,就会出现此问题。 只需单击“添加策略”按钮即可在顶级范围重新添加默认策略。
老问题,但我发帖是因为我有一个由不同问题引起的类似问题(空响应):
我得到的回复是空的,因为我在读取回复的策略中有表达式。默认情况下,读取响应会清除它(大概是因为它下面是一个流)。
在这里找到了一些很好的文档:https://learn.microsoft.com/en-us/azure/api-management/api-management-transformation-policies#SetBody
我通过在阅读响应时指定“保留内容”来修复此问题:
JObject responseJobj = null;
if (context.Response.Body != null)
{
responseJobj = context.Response.Body.As<JObject>(preserveContent: true);
}
If you add
<backend>
<forward-request />
</backend>
it will resolve the issue. this part will forward the request to the url you set as backend service url