Wie verwalte ich Cookies für authentifizierte HTTP-Client-Anfragen in Go?

Susan Sarandon
Freigeben: 2024-11-10 07:15:02
Original
978 Leute haben es durchsucht

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

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]
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage