Maison > développement back-end > Golang > le corps du texte

Comment émuler la localisation basée sur les cookies de cURL dans Go ?

DDD
Libérer: 2024-11-05 07:26:02
original
431 Les gens l'ont consulté

How to Emulate cURL's Cookie-Based Location Following in Go?

Émulation de la localisation basée sur les cookies de CURL dans Go

Problème :

Lors de la réception d'une redirection (code HTTP 302) avec un cookie d'accompagnement dans la réponse, comment un client Go peut-il suivre le nouvel emplacement tout en utilisant le cookie reçu ?

Réponse :

Dans Go 1.1 et versions ultérieures, le net/http/cookiejar fournit une solution pour cela :

<code class="go">import (
    "golang.org/x/net/publicsuffix"
    "io/ioutil"
    "log"
    "net/http"
    "net/http/cookiejar"
)

func main() {
    options := cookiejar.Options{
        PublicSuffixList: publicsuffix.List,
    }
    jar, err := cookiejar.New(&options)
    if err != nil {
        log.Fatal(err)
    }
    client := http.Client{Jar: jar}
    resp, err := client.Get("http://dubbelboer.com/302cookie.php")
    if err != nil {
        log.Fatal(err)
    }
    data, err := ioutil.ReadAll(resp.Body)
    resp.Body.Close()
    if err != nil {
        log.Fatal(err)
    }
    log.Println(string(data))
}</code>
Copier après la connexion

Cet extrait de code émule efficacement le comportement de suivi de localisation basé sur les cookies de CURL en créant un pot à cookies (jar) qui stocke le cookie reçu. Lorsque le client suit la redirection, il envoie le cookie stocké avec la demande, lui permettant d'accéder au nouvel emplacement avec les autorisations appropriées.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal