La API de Azure devuelve una respuesta en blanco
Consulte el artículo sobre la serie de solución de problemas de Azure API Management, este es el primer escenario del laboratorio. Asegúrese de que ha seguido las instrucciones de configuración del laboratorio según esto para volver a crear el problema.
Versión original del producto: servicio API Management
Número de KB original: 4464936
Síntomas
La API en blanco de API consta de dos operaciones GetHeaders y GetMyIp. GetMyIp devuelve el valor del valor del encabezado X-FORWARDED-FOR y GetHeaders devuelve todos los valores del encabezado de solicitud. GetMyIp devuelve la salida esperada, pero de repente GetHeaders comenzó a devolver una respuesta en blanco (sin cuerpo de respuesta).
La salida esperada de GetHeaders API debe ser similar a la siguiente:
{
"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"
}
}
Pasos para solucionar problemas
Para depurar este tipo de problemas, el mejor enfoque es recopilar el seguimiento del inspector de APIM para inspeccionar el procesamiento de solicitudes dentro de la canalización de APIM.
- Si examina el seguimiento, observaría que falta la directiva de solicitud de reenvío.
- La directiva de solicitud de reenvío reenvía la solicitud entrante al servicio back-end especificado en el contexto de solicitud.
- Si quita los resultados de esta directiva en la solicitud no se reenviarán al servicio back-end, y las directivas de la sección de salida se evaluarán inmediatamente tras la finalización correcta de las directivas en la sección de entrada.
- Por lo tanto, si comprueba la <sección back-end> de la operación GetHeaders en Blank-API , observaría que se quita la directiva de solicitud de reenvío.
- Agregue la directiva de solicitud de reenvío en la sección back-end o agregue <base o> elemento para que herede la directiva de solicitud de reenvío del nivel primario (es decir, del nivel de API), que debe resolver el problema.
Obtenga información sobre la directiva de solicitud de reenvío para obtener más información sobre ella.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.