Le navigateur est apatride, le navigateur n'a que des cookies et la session est également un cookie côté client. Si vous souhaitez que le robot se souvienne du compte/mot de passe pour la connexion automatique, le problème consiste à lui permettre de mémoriser le cookie.
Se souvenir des cookies est extrêmement simple en golang.
Récemment, nous écrivions un robot opérationnel, et l'un de nos frères a réalisé la connexion automatique du compte WeChat. Après avoir brièvement parcouru le code source, nous avons découvert qu'il avait été implémenté à l'aide de cookiejar.
cookiejar : Le package net/http/cookiejar fournit une implémentation CookieJar.
cookiejar est extrêmement simple dans le code source Golang :
type CookieJar interface { //设置cookie SetCookies(u *url.URL, cookies []*Cookie) //取cookie Cookies(u *url.URL) []*Cookie} 核心代码: wechat.BaseURL = cached[`baseURL`].(string) wechat.BaseRequest = cached[`baseRequest`].(*BaseRequest) cookies := cached[`cookies`].([]*http.Cookie) u, ue := url.Parse(wechat.BaseURL) if ue != nil { return ue }
wechat.Client.Jar. SetCookies (u, cookies)
Où sont mises en cache les données de séquence json lues à partir du disque dur, et cached[`cookies`] est le cache écrit après la connexion précédente. Wechat.Client est un http.Client standard :
type WeChat struct { Client *http.Client }
Réutilisez le même http.Client dans un cycle de programme, ou écrivez le cookie sur le disque dur ou la base de données, et réutilisez-le au prochain redémarrage. De cette manière, la connexion automatique au compte est obtenue.
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!