L’API Azure retourne une réponse vide
En faisant référence à l’article sur La série de résolution des problèmes azure Gestion des API, il s’agit du premier scénario du labo. Vérifiez que vous avez suivi les instructions de configuration du labo en fonction de cela, pour recréer le problème.
Version du produit d’origine : service Gestion des API
Numéro de base de connaissances d’origine : 4464936
L’API Vide de l’API se compose de deux opérations GetHeaders et GetMyIp. GetMyIp retourne la valeur de l’en-tête X-FORWARDED-FOR et GetHeaders retourne toutes les valeurs d’en-tête de requête. GetMyIp retourne la sortie attendue, mais soudainement GetHeaders a commencé à retourner une réponse vide (aucun corps de réponse).
La sortie attendue de l’API GetHeaders doit être similaire à ce qui suit :
{
"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"
}
}
Pour déboguer ce type de problèmes, la meilleure approche consiste à collecter la trace de l’inspecteur APIM pour inspecter le traitement des demandes dans le pipeline APIM.
- Si vous examinez la trace, vous remarquerez que la stratégie de transfert de requête est manquante.
- La stratégie de transfert de requête transfère la requête entrante au service principal spécifié dans le contexte de la requête.
- En cas de suppression cette stratégie, la demande n’est pas transférée au service principal et les stratégies de la section outbound sont évaluées immédiatement après la réussite des stratégies de la section inbound.
- Par conséquent, si vous vérifiez la <section back-end> de l’opération GetHeaders sous Blank-API , vous remarquerez que la stratégie de transfert de requête est supprimée.
- Ajoutez la stratégie de transfert de requête dans la section back-end ou ajoutez <base/> élément afin qu’elle hérite de la stratégie de demande de transfert du niveau parent (c’est-à-dire du niveau de l’API), ce qui doit résoudre le problème.
En savoir plus sur la stratégie de transfert de requête pour en savoir plus.
Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.