La API de Azure devuelve una respuesta en blanco
En referencia al artículo sobre azure API Management serie de solución de problemas, 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: API Management Service
Número de KB original: 4464936
Síntomas
La API Blank API consta de dos operaciones GetHeaders y GetMyIp. GetMyIp devuelve el valor del encabezado X-FORWARDED-FOR y GetHeaders devuelve todos los valores de 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 de solución de 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 la solicitud.
- Al quitar esta directiva, la solicitud no se reenvía al servicio back-end y las directivas de la sección saliente se evalúan inmediatamente después de 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 ha quitado 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, desde el 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 al respecto.
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.