Dela via


Azure API returnerar ett tomt svar

Med hjälp av artikeln om felsökningsserien för Azure API Management är det här det första scenariot i labbet. Se till att du har följt instruktionerna för labbkonfigurationen enligt detta för att återskapa problemet.

Ursprunglig produktversion: API Management Service
Ursprungligt KB-nummer: 4464936

Symptom

API :et Blank API består av två åtgärder GetHeaders och GetMyIp. GetMyIp returnerar värdet för X-FORWARDED-FOR-huvudvärdet och GetHeaders returnerar alla värden för begärandehuvudet. GetMyIp returnerar förväntade utdata men plötsligt började GetHeaders returnera ett tomt svar (ingen svarstext).

Skärmbild av ett tomt svar.

Förväntade utdata från GetHeaders API bör se ut ungefär så här:

{
  "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"
  }
}

Felsökningssteg

För att felsöka den här typen av problem är den bästa metoden att samla in APIM-kontrollspårning för att inspektera bearbetning av begäranden i APIM-pipelinen.

  • Om du tittar på spårningen ser du att principen för vidarebefordran saknas.
  • Principen för vidarebefordran av begäran vidarebefordrar den inkommande begäran till den serverdelstjänst som anges i begärandekontexten.
  • Om du tar bort den här principen kommer begäran inte att vidarebefordras till serverdelstjänsten och principerna i avsnittet utgående utvärderas omedelbart när principerna i det inkommande avsnittet har slutförts.
  • Om du kontrollerar <serverdelen> i GetHeaders-åtgärden under Blank-API ser du därför att principen för vidarebefordran tas bort.
  • Lägg till principen för vidarebefordran-begäran i serverdelsavsnittet eller lägg till <bas/> element så att den ärver principen för vidarebefordran från den överordnade nivån (dvs. från API-nivån), vilket bör lösa problemet.

Läs mer om principen för vidarebefordran av begäran om du vill veta mer om den.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.