Azure API 正在返回空白响应
参考有关 Azure API 管理 故障排除系列的文章,这是实验室的第一个方案。 请确保已按照此说明执行实验室设置说明,以重新创建问题。
原始产品版本:API 管理服务
原始 KB 数: 4464936
现象
API 空白 API 由两个操作 GetHeaders 和 GetMyIp 组成。 GetMyIp 返回 X-FORWARDED-FOR 标头值的值, GetHeaders 返回所有请求标头值。 GetMyIp 返回预期输出,但突然 GetHeaders 开始返回空白响应(无响应正文)。
GetHeaders API 的预期输出应如下所示:
{
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "en-US,en;q=0.5",
"Connection": "close",
"Cookie": "_gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1",
"Host": "eu.httpbin.org",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
}
}
故障排除步骤
若要调试此类问题,最佳方法是收集 APIM 检查器跟踪 以检查 APIM 管道内的请求处理。
- 如果查看跟踪,你会注意到转发请求策略缺失。
- 转发请求策略将传入请求转发到请求 上下文中指定的后端服务。
- 删除此策略之后,请求就不会转发到后端服务。一旦成功完成入站节中的策略,就会立即对出站节中的策略求值。
- 因此,<如果在 Blank-API 下检查 GetHeaders 操作的后端>部分,你会注意到已删除转发请求策略。
- 在后端部分中添加转发请求策略或添加 <base/> 元素,以便它从父级别(即 API 级别继承转发请求策略),从而解决问题。
阅读有关 转发请求 策略的详细信息。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。