Heim > Backend-Entwicklung > Golang > Wie verhindere ich automatische Weiterleitungen im HTTP-Client von Go?

Wie verhindere ich automatische Weiterleitungen im HTTP-Client von Go?

Linda Hamilton
Freigeben: 2024-12-25 17:27:17
Original
508 Leute haben es durchsucht

How Do I Prevent Automatic Redirects in Go's HTTP Client?

Deaktivieren der automatischen Weiterleitungsbehandlung im Go-HTTP-Client

Der Go-HTTP-Client folgt automatisch HTTP-Weiterleitungen, was in bestimmten Situationen unpraktisch sein kann. Um dieses Verhalten zu deaktivieren, kann die CheckRedirect-Funktion des http.Client überschrieben werden.

Ein gängiger Ansatz besteht darin, eine benutzerdefinierte CheckRedirect-Funktion zu definieren, die immer einen Fehler zurückgibt. Dies erfordert jedoch die Behandlung von HTTP-Weiterleitungen als Fehler, was zu einer unnötigen Fehlerbehandlung führen kann.

Eine alternative Lösung besteht darin, die ErrUseLastResponse-Konstante als Rückgabewert in der CheckRedirect-Funktion zu verwenden. Dadurch wird der HTTP-Client angewiesen, die neueste Antwort zu verwenden, ohne Weiterleitungen zu folgen.

Hier ist ein Beispiel für die Verwendung dieses Ansatzes:

client := &http.Client{
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
        return http.ErrUseLastResponse
    },
}
Nach dem Login kopieren

Mit dieser Konfiguration wird der HTTP-Client dies nicht tun Folgen Sie Weiterleitungen und geben Sie die aktuellste Antwort zurück, wodurch der Zugriff auf den HTTP-Location-Header zur weiteren Verarbeitung ermöglicht wird. Dieser Ansatz vermeidet die Notwendigkeit einer Fehlerbehandlung und bietet eine direktere Möglichkeit, das Umleitungsverhalten zu steuern.

Das obige ist der detaillierte Inhalt vonWie verhindere ich automatische Weiterleitungen im HTTP-Client von Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage