Maison  >  Article  >  développement back-end  >  Comment récupérer l'URL finale après les redirections HTTP dans Go ?

Comment récupérer l'URL finale après les redirections HTTP dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-26 02:05:11924parcourir

How to Retrieve the Final URL After HTTP Redirects in Go?

Comment obtenir des URL après les instructions du client

Dans le package http de Go, il est courant d'effectuer plusieurs requêtes http pour interroger des chaînes. Cependant, extraire ces chaînes de l’URL finale peut s’avérer difficile, surtout en cas de redirection. Malheureusement, l'objet Response manque d'informations concernant cette URL finale.

Malgré la disponibilité d'options de prévention des redirections, cet article se concentre sur l'obtention de l'URL après qu'une demande a été effectuée. Pour y parvenir :

  1. Créez une nouvelle requête http à l'aide de http.NewRequest.
  2. Configurez un http.Client pour gérer la requête.
  3. Utilisez une fonction anonyme pour configurer le client. La fonction anonyme permet de stocker la requête URL dans une variable.
  4. Exécuter la requête à l'aide de client.Do.
  5. Récupérer la requête URL stockée.

Voici un exemple d'extrait de code :

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

func main() {
    req, err := http.NewRequest("GET", "URL", nil)
    if err != nil {
        log.Fatal(err)
    }
    cl := http.Client{}
    var lastUrlQuery string
    cl.CheckRedirect = func(req *http.Request, via []*http.Request) error {
        if len(via) > 10 {
            return errors.New("too many redirects")
        }
        lastUrlQuery = req.URL.RequestURI()
        return nil
    }
    resp, err := cl.Do(req)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("last url query is %v\n", lastUrlQuery)
}

Ce code redirigera la requête et enregistrera la requête d'URL finale dans lastUrlQuery.

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