Cookies mit Net/HTTP vom Server setzen
Dieser Artikel befasst sich mit dem Problem des Setzens von Cookies in Go mithilfe des Net/HTTP-Pakets. Wenn Sie auf Schwierigkeiten stoßen, haben Sie möglicherweise auf Online-Suchen zurückgegriffen, aber unbefriedigende Ergebnisse erhalten.
Sehen wir uns den von Ihnen bereitgestellten Code genauer an:
package main import ( "io" "net/http" "time" ) func indexHandler(w http.ResponseWriter, req *http.Request) { expire := time.Now().AddDate(0, 0, 1) cookie := http.Cookie{"test", "tcookie", "/", "www.domain.com", expire, expire.Format(time.UnixDate), 86400, true, true, "test=tcookie", []string{"test=tcookie"}} req.AddCookie(&cookie) io.WriteString(w, "Hello world!") } func main() { http.HandleFunc("/", indexHandler) http.ListenAndServe(":80", nil) }
Wie in der Antwort, die Sie erhalten haben, hervorgehoben, scheinen Sie dies zu tun Setzen Sie das Cookie auf die Anfrage und nicht auf die Antwort. Zu diesem Zweck stellt net/http eine Methode namens SetCookie zur Verfügung:
func SetCookie(w ResponseWriter, cookie *Cookie)
Um ein Cookie zu setzen, sollten Sie die SetCookie-Funktion wie folgt verwenden:
func indexHandler(w http.ResponseWriter, req *http.Request) { expire := time.Now().AddDate(0, 0, 1) cookie := http.Cookie{ Name: "test", Value: "tcookie", Path: "/", Domain: "www.domain.com", Expires: expire, MaxAge: 86400, // duration in seconds. Secure: true, HttpOnly: true, } http.SetCookie(w, &cookie) io.WriteString(w, "Hello world!") }
Durch Setzen des Cookies auf Nach der Antwort empfängt der Browser das Cookie und speichert es entsprechend. Dadurch können Sie Benutzersitzungen verfolgen und personalisierte Erlebnisse in Ihrer Webanwendung bereitstellen.
Das obige ist der detaillierte Inhalt vonWie kann ich Cookies mit dem net/http-Paket von Go richtig setzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!