Vorrei registrare 301s vs 302s ma non riesco a vedere un modo per leggere il codice di stato della risposta in Client.Do, Get, doFollowingRedirects, CheckRedirect. Dovrò implementare il reindirizzamento per raggiungere questo obiettivo?Come ottenere i codici di stato di reindirizzamento http in Golang
risposta
Il tipo http.Client
consente di specificare un trasporto personalizzato, che dovrebbe consentire di eseguire ciò che si sta cercando. Qualcosa come il seguente dovrebbe fare:
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
}
(si potrebbe semplificare questo un po 'se supporti solo concatenamento al trasporto di default).
È possibile quindi creare un client che utilizza questo tipo di trasporto, e le eventuali reindirizzamenti devono essere registrati:
client := &http.Client{Transport: LogRedirects{}}
Ecco un esempio completo si può sperimentare con: http://play.golang.org/p/8uf8Cn31HC
Per ulteriori messaggi di registro informativo, potresti anche voler usare ['http.StatusText()'] (https://golang.org/pkg/net/http/#StatusText) per includere il nome descrittivo umano del codice di stato. –
- 1. Come ottenere codici di stato HTTP numerici in PowerShell
- 2. Come modificare i codici di stato http in Strongloop Loopback
- 3. Come gestire gli errori di timeout HTTP e l'accesso ai codici di stato in golang
- 4. HttpClient GetStreamAsync e codici di stato http?
- 5. Come ascoltare i codici di stato di reindirizzamento 301/302 nelle richieste di immagini tra domini?
- 6. I codici di stato HTTP sono considerati "numeri magici"?
- 7. Cattura di codici di stato http con ragno graffiato
- 8. Restituzione di codici di stato HTTP in Python CGI
- 9. Codici di stato HTTP di errore Internet Internet Explorer
- 10. Codice di stato HTTP per il reindirizzamento della lingua
- 11. AJAX restituisce codici di stato insoliti
- 12. come ottenere l'URL di reindirizzamento invece del contenuto della pagina in golang?
- 13. Come ottenere il messaggio di stato HTTP in (py) curl?
- 14. Recupera i codici di stato HTTPResponse/HTTPRequest iPhone SDK?
- 15. Codici di errore HTTP 406 e 415
- 16. Come posso restituire codici di stato HTTP specifici da un metodo remoto in loopback?
- 17. Come testare un reindirizzamento HTTP 301?
- 18. Golang: http server di lasciare aperte goroutines
- 19. Come ottenere il codice di stato HTTP dalla risposta SOAP
- 20. Come valutare i codici di risposta http dallo script di bash/shell?
- 21. Vedere il percorso di reindirizzamento completo e il codice di stato HTTP in Chrome
- 22. HTTP 404 Reindirizzamento
- 23. Come specificare la classe di risposta e restituire i codici di stato utilizzando Swagger/ServiceStack
- 24. Come gestire in modo idioma i codici di errore HTTP quando si utilizza RestSharp?
- 25. Reindirizzamento CakePHP con codice di stato 404
- 26. Come inoltrare le intestazioni sul reindirizzamento HTTP
- 27. System.Net.WebException codice di stato HTTP
- 28. Ottenere codice di stato HTTP da Selenium WebDriver C#
- 29. Elenco completo dei codici di stato HTTP CHE NON INCLUDONO UN ORGANISMO DI RISPOSTA
- 30. Ottenere un codice di stato http vuoto 500 dall'API Web
Hai provato Response.StatusCode? – rvignacio
@rvignacio Golang http.Client reindirizza automaticamente così tutto ciò che mi darebbe è il codice di stato finale 200. –