Heim >Backend-Entwicklung >Golang >Wie kann ich Weiterleitungen mit dem Go HTTP-Client verhindern?
Weiterleitungen mit dem Go-HTTP-Client nicht folgen
Bei der Interaktion mit REST-APIs, die Umleitungsantworten zurückgeben, wird das Verhalten des Go-HTTP-Clients geändert Das Ignorieren von Weiterleitungen kann für bestimmte Anwendungsfälle erforderlich sein. Hier ist eine einfache und effektive Möglichkeit, diese Funktionalität zu erreichen:
Die CheckRedirect-Funktion des http.Client hat Vorrang vor dem standardmäßigen Redirect-Following-Verhalten. Durch Anpassen dieser Funktion können Sie festlegen, wann Weiterleitungen befolgt werden sollen. Um eine automatische Umleitung zu verhindern, stellen Sie eine alternative Implementierung bereit:
CheckRedirect: func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse }
Diese Konfiguration informiert das HTTP-Paket, Umleitungsvorgänge zu vermeiden. Es gibt http.ErrUseLastResponse zurück, was das Paket anweist, die neueste Antwort zu verwenden, während der Text noch zugänglich ist.
Aktualisieren Sie in Ihrem Beispiel die Client-Konfiguration wie folgt:
client := &http.Client{ CheckRedirect: func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse }, }
Indem Sie dies festlegen Mit der Konfiguration stellt Ihr Skript erfolgreich eine Verbindung zum Endpunkt her, ruft den HTTP-Location-Header zur weiteren Verarbeitung ab und vermeidet die Umleitung zur neuen Ressource. Diese Methode bietet einen eleganteren und fehlerfreien Ansatz im Vergleich zu alternativen Lösungen, die eine Fehlerbehandlung erzwingen.
Das obige ist der detaillierte Inhalt vonWie kann ich Weiterleitungen mit dem Go HTTP-Client verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!