Maison >développement back-end >Golang >Comment gérer les requêtes HTTP POST avec des cookies dans Go ?

Comment gérer les requêtes HTTP POST avec des cookies dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-27 22:01:11308parcourir

How to Handle HTTP POST Requests with Cookies in Go?

Go : publication HTTP avec cookies

Dans Go, la gestion des cookies pour les requêtes HTTP peut être réalisée à l'aide du package cookiejar introduit dans Go 1.1. En créant un CookieJar et en l'associant à un client HTTP, les cookies peuvent être automatiquement stockés et récupérés pour les requêtes ultérieures.

Exemple de code

Voici un exemple de la façon de se connecter à un site Web, de stocker le cookies, et accédez à une autre page en utilisant les cookies stockés :

package main

import (
    "fmt"
    "net/http"
    "net/http/cookiejar"
    "net/url"
)

func main() {
    // Create a new cookie jar.
    jar, err := cookiejar.New(nil)
    if err != nil {
        panic(err)
    }

    // Create an HTTP client that uses the cookie jar.
    client := &http.Client{
        Jar: jar,
    }

    // Login to the website.
    loginPostUrl := "http://www.example.com/login"
    values := url.Values{}
    values.Set("username", "my_username")
    values.Set("password", "my_password")
    resp, err := client.PostForm(loginPostUrl, values)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    // View the user's bill.
    viewBillUrl := "http://www.example.com/my/bill"
    resp, err = client.Get(viewBillUrl)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    // Read the bill's contents.
    billContents, err := resp.Body.ReadString('\n')
    if err != nil {
        panic(err)
    }

    fmt.Println(billContents)
}

Dans cet exemple, le CookieJar est utilisé pour stocker automatiquement les cookies renvoyés par la demande de connexion. Ces cookies sont ensuite utilisés pour autoriser la demande ultérieure sur la page /ma/facture.

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