Maison  >  Article  >  développement back-end  >  Comment déterminer l’URL finale après les redirections dans Golang ?

Comment déterminer l’URL finale après les redirections dans Golang ?

DDD
DDDoriginal
2024-11-11 16:59:03496parcourir

How to Determine the Final URL After Redirects in Golang?

Détermination de l'URL finale après les redirections dans Golang

Dans le package net/http de Golang, les requêtes HTTP GET peuvent rencontrer des redirections, ce qui peut conduire vers une URL de destination finale différente de la demande initiale. Cette situation difficile soulève la question : comment pouvons-nous déterminer l'URL finale atteinte après une série de redirections sans recourir à des solutions de contournement fastidieuses ?

La solution

Contrairement à l'hypothèse selon laquelle une approche hackish est nécessaire, une solution propre et simple existe dans l'objet Response renvoyé par l'opération HTTP GET. Cet objet contient l'objet Request qui a initié la requête, qui donne accès à l'URL finale visitée.

import (
    "fmt"
    "log"
    "net/http"
)

func main() {
    resp, err := http.Get("http://stackoverflow.com/q/16784419/727643")
    if err != nil {
        log.Fatalf("http.Get => %v", err.Error())
    }

    // Function to retrieve the final URL
    finalURL := resp.Request.URL.String()

    fmt.Printf("The URL you ended up at is: %v", finalURL)
}

Sortie :

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

Cette méthode permet de récupérer sans effort l'URL finale. après un certain nombre de redirections. Aucune personnalisation supplémentaire ni manipulation de variables globales n'est nécessaire, garantissant une implémentation propre et efficace.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn