Grundlegende HTTP-Authentifizierung in Go: Beheben von Umleitungsproblemen
Beim Versuch, die grundlegende HTTP-Authentifizierung in Go mit dem bereitgestellten Code zu verwenden, kann der Fehler bei Entwicklern auftreten : „nicht unterstütztes Protokollschema „“. Dieser Fehler ist wahrscheinlich auf die Verarbeitung von Weiterleitungen zurückzuführen.
Problem und Lösung
Die Feinheit entsteht, wenn die Website eine Weiterleitung durchführt. In Go gehen bei Weiterleitungen die in der ursprünglichen Anfrage angegebenen benutzerdefinierten Header verloren. Um dieses Problem zu beheben, muss eine benutzerdefinierte Umleitungsfunktion definiert werden, um die Header wiederherzustellen.
Aktualisierter Code mit benutzerdefinierter Umleitungsfunktion
Der folgende Codeausschnitt veranschaulicht das aktualisierte Skript, das enthält die Umleitungsfunktion:
func basicAuth(username, password string) string { auth := username + ":" + password return base64.StdEncoding.EncodeToString([]byte(auth)) } func redirectPolicyFunc(req *http.Request, via []*http.Request) error{ req.Header.Add("Authorization","Basic " + basicAuth("username1","password123")) return nil } func main() { client := &http.Client{ Jar: cookieJar, CheckRedirect: redirectPolicyFunc, } req, err := http.NewRequest("GET", "http://localhost/", nil) req.Header.Add("Authorization","Basic " + basicAuth("username1","password123")) resp, err := client.Do(req) }
Mit dieser Änderung stellt die benutzerdefinierte Umleitungsfunktion sicher, dass der Authentifizierungsheader zu nachfolgenden Umleitungsanforderungen hinzugefügt wird, wodurch der Fehler behoben und die HTTP-Authentifizierung aktiviert wird.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „nicht unterstütztes Protokollschema' während der grundlegenden HTTP-Authentifizierung in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!