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 community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。