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] }
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
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!