Maison  >  Article  >  développement back-end  >  Comment émuler la localisation basée sur les cookies de cURL dans Go ?

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

DDD
DDDoriginal
2024-11-05 07:26:02370parcourir

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>

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!

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