You need to check the redirection and stop (capture) them. If you commit the redirect, you can get the redirect URL (for which the redirect occurred) using the response structure method.
package main import ( "errors" "fmt" "net/http" ) func main() { req, err := http.NewRequest("GET", "https://www.google.com", nil) if err != nil { panic(err) } client := new(http.Client) client.CheckRedirect = func(req *http.Request, via []*http.Request) error { return errors.New("Redirect") } response, err := client.Do(req) if err != nil { if response.StatusCode == http.StatusFound { //status code 302 fmt.Println(response.Location()) } else { panic(err) } } }
source share