Warum schlägt die Go-HTTP-Authentifizierung mit „nicht unterstütztes Protokollschema' fehl?

Barbara Streisand
Freigeben: 2024-11-21 11:02:11
Original
186 Leute haben es durchsucht

Why Does Go HTTP Authentication Fail with

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

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

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

Integrieren Sie die benutzerdefinierte Weiterleitungsrichtlinie in Ihren Client:

client := &http.Client{
  CheckRedirect: redirectPolicyFunc,
}
Nach dem Login kopieren

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!

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