Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Zusammenfassung
In diesem Artikel wird erläutert, wie Sie Probleme mit einer API beheben, die leere Antworten zurückgibt, und die Anforderungsweiterleitung in Azure API Management wiederherstellen.
Dies ist das erste Szenario des Azure API Management Problembehandlungs-Reihenlabors. Stellen Sie sicher, dass Sie die Anweisungen zum Einrichten des Labs gemäß den Anweisungen zum Lab der API Management-Problembehandlungsserie befolgen.
Ursprüngliche Produktversion: API-Verwaltungsdienst
Ursprüngliche KB-Nummer: 4464936
Symptome
Leere API besteht aus zwei Vorgängen: GetHeaders und GetMyIp.
GetMyIp gibt den Wert der X-FORWARDED-FOR Kopfzeile zurück, und GetHeaders gibt alle Anforderungsheaderwerte zurück.
GetMyIp gibt die erwartete Ausgabe zurück, aber plötzlich begann GetHeaders mit der Rückgabe einer leeren Antwort (kein Antworttext).
Die erwartete Ausgabe der GetHeaders-API sollte dem folgenden Beispiel ähneln:
{
"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"
}
}
Troubleshooting
Um dieses Problem zu beheben, besteht der beste Ansatz darin, eine API-Verwaltungsinspektorablaufverfolgung zu sammeln, um die Anforderungsverarbeitung innerhalb der API-Verwaltungspipeline zu prüfen.
Beachten Sie, dass die forward-request Richtlinie fehlt. Die forward-request-Richtlinie leitet die eingehende Anforderung an den Backenddienst weiter, der im Anforderungs-forward-request angegeben ist. Durch das Entfernen dieser Richtlinie wird die Anforderung nicht an den Back-End-Dienst weitergeleitet. Die Richtlinien im Outbound-Abschnitt werden direkt nach dem erfolgreichen Abschluss der Richtlinien im Inbound-Abschnitt ausgewertet.
Überprüfen Sie den <backend> Abschnitt des GetHeaders-Vorgangs unter "Blank-API". Beachten Sie, dass die forward-request Richtlinie entfernt wird.
Fügen Sie die forward-request Richtlinie im Back-End-Abschnitt hinzu, oder fügen Sie das <base /> Element hinzu, damit sie die forward-request Richtlinie von der übergeordneten Ebene (API-Ebene) erbt. Diese Änderung sollte das Problem beheben.
Weitere Informationen finden Sie in der Weiterleitungsanforderungsrichtlinie .