Heim  >  Artikel  >  Backend-Entwicklung  >  Warum schlägt die Go-HTTP-Authentifizierung mit „nicht unterstütztes Protokollschema' fehl?

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

Barbara Streisand
Barbara StreisandOriginal
2024-11-21 11:02:11188Durchsuche

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)

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!

Stellungnahme:
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