Heim > Backend-Entwicklung > Golang > Wie frage ich URLs ohne Weiterleitungen in Go ab?

Wie frage ich URLs ohne Weiterleitungen in Go ab?

Barbara Streisand
Freigeben: 2024-12-07 14:10:14
Original
713 Leute haben es durchsucht

How to Query URLs Without Redirects in Go?

URLs ohne Weiterleitungen in Go abfragen

Beim Testen von Weiterleitungsskripten kann es notwendig sein, eine URL abzufragen, ohne die Weiterleitung auszulösen. Dies ist besonders nützlich für die Protokollierung von Weiterleitungs-URLs oder Fehlern. Es gibt zwei Ansätze, um dies in Go zu erreichen.

Verwendung des Standardtransports

Die erste Methode beinhaltet die Verwendung des http.DefaultTransport-Objekts, das eine bessere Kontrolle über das ermöglicht Bearbeitungsprozess der Anfrage. Durch die Nutzung der RoundTrip-Funktion ist es möglich, die HTTP-Anfrage auszuführen, ohne irgendwelchen Weiterleitungen zu folgen.

req, err := http.NewRequest("GET", "http://example.com/redirectToAppStore", nil)
// ...
resp, err := http.DefaultTransport.RoundTrip(req)
Nach dem Login kopieren

Verwendung des CheckRedirect-Feldes

Alternativ nutzt die zweite Methode das CheckRedirect-Feld eines http.Client. Indem Sie dieses Feld auf func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse } setzen, wird die Umleitungsverarbeitung für nachfolgende Anforderungen, die über den Client ausgeführt werden, effektiv deaktiviert.

client := &http.Client{
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
        return http.ErrUseLastResponse
    },
}
resp, err := client.Get("http://example.com/redirectToAppStore")
Nach dem Login kopieren

Leistungsüberlegungen

Im Zusammenhang mit dem Benchmarking ist es wichtig zu beachten, dass die erste Lösung (http.DefaultTransport.RoundTrip) weist Leistungsprobleme auf, wenn zahlreiche Anfragen gleichzeitig gestellt werden. Dies liegt an der Möglichkeit der Wiederverwendung von Verbindungen innerhalb des Transports.

Für Szenarien, in denen einzelne Anfragen separate Verbindungen erfordern, wird empfohlen, die zweite Lösung (CheckRedirect-Feld) zu verwenden und für jede Anfrage einen neuen Client zu erstellen. Dadurch wird sichergestellt, dass Verbindungen nach jeder Abfrage geschlossen und nicht wiederverwendet werden.

Das obige ist der detaillierte Inhalt vonWie frage ich URLs ohne Weiterleitungen in Go ab?. 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