tráfico redirectmatch redirecciones redireccionar redireccion que pagina otra index htaccess home carpeta cambiar http go

http - redirectmatch - En golang, ¿cómo determinar la URL final después de una serie de redirecciones?



redirectmatch 301 (1)

Entonces, estoy usando el paquete net / http. Estoy OBTENIENDO una URL que sé que está redirigiendo. Incluso puede redirigir un par de veces antes de aterrizar en la URL final. La redirección se maneja automáticamente detrás de las escenas.

¿Existe una manera fácil de descubrir cuál era la URL final sin una solución provisional que implica establecer el campo CheckRedirect en un objeto http.Client?

Creo que debería mencionar que creo que se me ocurrió una solución alternativa, pero es un tanto hackosa, ya que implica el uso de una variable global y la configuración del campo CheckRedirect en un http.Client personalizado.

Tiene que haber una manera más limpia de hacerlo. Espero algo como esto:

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) }


package main import ( "fmt" "log" "net/http" ) func main() { resp, err := http.Get("http://.com/q/16784419/727643") if err != nil { log.Fatalf("http.Get => %v", err.Error()) } // Your magic function. The Request in the Response is the last URL the // client tried to access. finalURL := resp.Request.URL.String() fmt.Printf("The URL you ended up at is: %v/n", finalURL) }

Salida:

The URL you ended up at is: http://.com/questions/16784419/in-golang-how-to-determine-the-final-url-after-a-series-of-redirects