Grundlegende HTTP-Authentifizierung in Go: Beheben eines Fehlercodes
Beim Versuch der grundlegenden HTTP-Authentifizierung mit Go wird möglicherweise die Fehlermeldung „nicht unterstützt“ angezeigt Protokollschema ''". Lassen Sie uns in den Code eintauchen und untersuchen, warum dieses Problem auftritt.
Der problematische Code lautet wie folgt:
func basicAuth() string { req, err := http.NewRequest("GET", "mydomain.example", nil)
Der Fehler entsteht durch das Weglassen von „http://“ oder „https: //" Präfix in der URL. Um dieses Problem zu beheben, ändern Sie den Code wie folgt:
func basicAuth() string { req, err := http.NewRequest("GET", "http://mydomain.example", nil)
Stellen Sie sicher, dass die von Ihnen angegebene URL das richtige Protokollschema enthält, entweder „http“ oder „https“.
Zusätzliches Problem : Weiterleitungen
Seien Sie sich der potenziellen Gefahr bei Weiterleitungen bewusst. Go-lang verwirft bei Weiterleitungen angegebene Header. Um dies zu umgehen, implementieren Sie eine benutzerdefinierte Weiterleitungsrichtlinienfunktion, die den Header erneut hinzufügt:
func redirectPolicyFunc(req *http.Request, via []*http.Request) error{ req.Header.Add("Authorization","Basic " + basicAuth("username1","password123")) return nil }
Integrieren Sie die benutzerdefinierte Weiterleitungsrichtlinie in Ihren Client:
client := &http.Client{ CheckRedirect: redirectPolicyFunc, }
Indem Sie diese Anpassungen befolgen, werden Sie kann die einfache HTTP-Authentifizierung in Go erfolgreich durchführen und potenzielle Weiterleitungen verarbeiten, ohne Ihren Autorisierungsheader zu verlieren.
Das obige ist der detaillierte Inhalt vonWarum schlägt die Go-HTTP-Authentifizierung mit „nicht unterstütztes Protokollschema' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!