Chciałbym zalogować 301s vs 302, ale nie widzę sposobu, aby odczytać kod stanu odpowiedzi w Client.Do, Get, doFollowingRedirects, CheckRedirect. Czy będę musiał sam przeprowadzić przekierowanie, aby to osiągnąć?Jak uzyskać kody przekierowań http w Golang
Odpowiedz
Typ http.Client
pozwala określić niestandardowy transport, który powinien umożliwić wykonanie tego, co chcemy. Coś jak poniżej powinno:
type LogRedirects struct {
Transport http.RoundTripper
}
func (l LogRedirects) RoundTrip(req *http.Request) (resp *http.Response, err error) {
t := l.Transport
if t == nil {
t = http.DefaultTransport
}
resp, err = t.RoundTrip(req)
if err != nil {
return
}
switch resp.StatusCode {
case http.StatusMovedPermanently, http.StatusFound, http.StatusSeeOther, http.StatusTemporaryRedirect:
log.Println("Request for", req.URL, "redirected with status", resp.StatusCode)
}
return
}
(można to trochę uprościć, jeśli obsługuje się tylko łańcuchowe do transportu domyślnego).
Następnie można utworzyć klienta przy użyciu tego transportu, a wszelkie przekierowania powinny być rejestrowane:
client := &http.Client{Transport: LogRedirects{}}
Oto pełny przykład można eksperymentować z: http://play.golang.org/p/8uf8Cn31HC
Dla bardziej pouczających komunikatów, możesz również użyć ['http.StatusText()'] (https://golang.org/pkg/net/http/#StatusText), aby dołączyć przyjazną dla człowieka nazwę kodu statusu. –
- 1. Nie propaguj nagłówków przekierowań HTTP
- 2. W języku golang, jak ustalić końcowy URL po serii przekierowań?
- 3. Jak uzyskać MSXML IXMLHTTPRequest do obsługi przekierowań HTTP?
- 4. Jak uzyskać numeryczne kody statusu HTTP w programie PowerShell
- 5. Android HttpURLConnection: Stosować przekierowań HTTP
- 6. WKWebView haczyk HTTP kody błędów
- 7. Jak uzyskać kody dostępu w Pythonie
- 8. Golang: uzyskać rodzaj wycinka
- 9. serwer HTTP golang, nie można uzyskać wartości posta
- 10. Jak można sprawić, aby klient HTTP NIE wykonał automatycznych przekierowań?
- 11. Jak zmienić kody statusu http w Strongloop Loopback
- 12. Ponowne używanie połączeń HTTP w Golang
- 13. Różnica między sieci/http i net/http/fcgi w Golang
- 14. Spring Boot Rest Controller, jak zwrócić różne kody statusu HTTP?
- 15. Jak obsługiwać zwykły tekst HTTP Uzyskaj odpowiedź w Golang?
- 16. Jak uzyskać nagłówki HTTP
- 17. nagłówki odpowiedzi HTTP golang są usuwane
- 18. Golang: http serwer pozostawiając otwarte goroutines
- 19. http uzyskać NodeJS jak uzyskać kod statusu błędu?
- 20. Adresowanie przekierowań na koszulki
- 21. Jak zmusić Chrome NIE do buforowania przekierowań?
- 22. kody odpowiedzi HTTP odróżnić niewłaściwych parametrów i wartości upadających
- 23. golang - jak pobrać plik w przeglądarce z serwera golang?
- 24. Jak uzyskać zawartość żądania http w Ruby?
- 25. Jak uzyskać przechwytywanie funkcjonalności grupy w wyrażeniach regularnych Golang?
- 26. Jak uzyskać skrót MD5 z ciągu znaków w Golang?
- 27. jak uzyskać różne wartości w mongodb przy użyciu golang
- 28. Jak mogę uzyskać wszystkie struct pod pakietem w Golang?
- 29. Czy kody statusu HTTP są uważane za "magiczne liczby"?
- 30. Jak działają kody kolorów int w Androidzie?
Czy próbowałeś Response.StatusCode? – rvignacio
@rvignacio Golang http.Client wykonuje przekierowania automatycznie, więc wszystko co dałoby mi to końcowy kod statusu 200. –