Authentifizierte HTTP-Client-Anfragen von Go
Im Zusammenhang mit HTTP-Client-Anfragen, die eine Authentifizierung erfordern, tritt ein häufiges Problem auf, wenn nachfolgende Anfragen fehlschlagen mit einem 401-Zugriffsverweigerungsfehler. Sehen wir uns eine Golang-Lösung für dieses Problem an.
Im bereitgestellten Codeausschnitt authentifiziert sich der Client erfolgreich mithilfe der HTTP-Basisauthentifizierung beim Server, steht jedoch bei der nachfolgenden Anfrage zum Abrufen von Benutzerdetails vor Herausforderungen. Um dieses Problem zu beheben, besteht die Lösung darin, eine benutzerdefinierte Cookie-Dose zu erstellen.
Der HTTP-Client von Golang übernimmt nicht automatisch die Cookie-Verwaltung. Zum Speichern und Verwalten von Cookies über HTTP-Anfragen hinweg ist eine Cookie-Dose erforderlich. Der folgende Code definiert eine benutzerdefinierte Cookie-Jar-Implementierung:
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] }
In der Hauptfunktion initialisieren wir die benutzerdefinierte Cookie-Jar-Datei und weisen sie dem Jar-Feld des Clients zu:
jar := &myjar{} jar.jar = make(map[string] []*http.Cookie) client.Jar = jar
Durch Einbindung Durch diese Änderungen kann Golang Cookies erfolgreich über authentifizierte HTTP-Anfragen hinweg verwalten. Jetzt hängt der Client das mit der authentifizierten Sitzung verknüpfte Cookie automatisch an nachfolgende Anfragen an und stellt so sicher, dass die Detailanfrage korrekt verarbeitet wird, ohne dass der 401-Fehler auftritt.
Das obige ist der detaillierte Inhalt vonWie verwalte ich Cookies für authentifizierte HTTP-Client-Anfragen in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!