Maison >développement back-end >Golang >Comment utiliser le CookieJar de Go pour suivre les redirections tout en préservant les cookies ?

Comment utiliser le CookieJar de Go pour suivre les redirections tout en préservant les cookies ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-05 18:35:02934parcourir

How can Go's CookieJar be used to follow redirects while preserving cookies?

Exploiter le cookiejar de Go pour suivre les redirections avec des cookies

Lorsqu'une requête HTTP entraîne une redirection 302, il est crucial de conserver les cookies reçus du serveur pour la requête ultérieure. Dans Go, cela peut être réalisé via le package cookiejar, offrant un moyen pratique de suivre automatiquement les redirections tout en préservant les cookies.

Dans ce scénario, l'objectif est d'émuler le comportement de CURL avec les paramètres suivants :

  • COOKIEFILE = " : Désactiver l'écriture de cookies sur le disque.
  • AUTOREFERER = 1 : Définir automatiquement l'en-tête Referer.
  • FOLLOWLOCATION = 1 : Suivre les redirections.

Implémentation avec cookiejar

Avec Go 1.1, le package net/http/cookiejar est disponible pour gérer ces tâches de manière transparente. Voici un exemple de code démontrant son utilisation :

<code class="go">package main

import (
    "golang.org/x/net/publicsuffix"
    "io/ioutil"
    "log"
    "net/http"
    "net/http/cookiejar"
)

func main() {
    // Configure the cookie jar.
    options := cookiejar.Options{
        PublicSuffixList: publicsuffix.List,
    }
    jar, err := cookiejar.New(&options)
    if err != nil {
        log.Fatal(err)
    }

    // Create an HTTP client with the cookie jar.
    client := http.Client{Jar: jar}

    // Make the request.
    resp, err := client.Get("http://dubbelboer.com/302cookie.php")
    if err != nil {
        log.Fatal(err)
    }

    // Read the response body.
    data, err := ioutil.ReadAll(resp.Body)
    resp.Body.Close()
    if err != nil {
        log.Fatal(err)
    }

    // Log the response.
    log.Println(string(data))
}</code>

Dans cet exemple, le pot à cookies est configuré pour suivre la liste des suffixes publics, garantissant ainsi une gestion appropriée des cookies basés sur le domaine. Le client est créé avec le fichier jar et une requête GET est envoyée à l'URL spécifiée. Le corps de la réponse est lu et enregistré, démontrant que le pot à cookies gère efficacement la redirection et préserve le cookie.

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