Azure API 返回空白响应

请参阅 Azure API 管理故障排除系列文章,这是实验室的第一个方案。 请确保已按照实验室设置说明 进行操作,以重新创建问题。

原始产品版本:API 管理服务
原始 KB 编号: 4464936

症状

API 空白 API 由两个操作 GetHeadersGetMyIp 组成。 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 操作的后端>部分,你会注意到转发请求策略已删除。
  • 在后端部分添加转发请求策略或添加 <基 /> 元素,以便它从父级 (即从 API 级别) 继承转发请求策略,这应该可以解决问题。

阅读有关 转发请求 策略的详细信息。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 还可以向 Azure 反馈社区提交产品反馈。