So, I'm using the net/http package. I'm GETting a URL that I know for certain is redirecting. It may even redirect a couple of times before landing on the final URL. Redirection is handled automatically behind the scenes.
Is there an easy way to figure out what the final URL was without a hackish workaround that involves setting the CheckRedirect field on a http.Client object?
I guess I should mention that I think I came up with a workaround, but it's kind of hackish, as it involves using a global variable and setting the CheckRedirect field on a custom http.Client.
There's got to be a cleaner way to do it. I'm hoping for something like this:
package main import ( "fmt" "log" "net/http" ) func main() { // Try to GET some URL that redirects. Could be 5 or 6 unseen redirections here. resp, err := http.Get("http://some-server.com/a/url/that/redirects.html") if err != nil { log.Fatalf("http.Get => %v", err.Error()) } // Find out what URL we ended up at finalURL := magicFunctionThatTellsMeTheFinalURL(resp) fmt.Printf("The URL you ended up at is: %v", finalURL) }