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

Comment gérer les cookies pour les demandes de clients HTTP authentifiés dans Go ?

Susan Sarandon
Libérer: 2024-11-10 07:15:02
original
1002 Les gens l'ont consulté

How to Manage Cookies for Authenticated HTTP Client Requests in Go?

Demandes de client HTTP authentifiées depuis Go

Dans le contexte des requêtes de client HTTP qui nécessitent une authentification, un problème courant survient lorsque les requêtes suivantes échouent avec une erreur d'accès refusé 401. Explorons une solution Golang à ce problème.

Dans l'extrait de code fourni, le client s'authentifie avec succès auprès du serveur à l'aide de l'authentification HTTP de base, mais est confronté à des difficultés lors de la demande ultérieure pour récupérer les détails de l'utilisateur. Pour résoudre ce problème, la solution réside dans la création d'un pot à cookies personnalisé.

Le client HTTP de Golang ne gère pas automatiquement la gestion des cookies. Un pot à cookies est nécessaire pour stocker et gérer les cookies dans les requêtes HTTP. Le code ci-dessous définit une implémentation de pot de cookies personnalisé :

type myjar struct {
    jar map[string] []*http.Cookie
}

func (p* myjar) SetCookies(u *url.URL, cookies []*http.Cookie) {
    p.jar [u.Host] = cookies
}

func (p *myjar) Cookies(u *url.URL) []*http.Cookie {
    return p.jar[u.Host]
}
Copier après la connexion

Dans la fonction principale, nous initialisons le pot de cookies personnalisé et l'attribuons au champ Jar du client :

    jar := &myjar{}
    jar.jar = make(map[string] []*http.Cookie)
    client.Jar = jar
Copier après la connexion

En incorporant Ces changements, Golang peut gérer avec succès les cookies sur les requêtes HTTP authentifiées. Désormais, le client attachera automatiquement le cookie associé à la session authentifiée aux demandes ultérieures, garantissant ainsi que la demande de détails est traitée correctement sans l'erreur 401.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal