Maison > développement back-end > Golang > Pourquoi l'authentification Go HTTP échoue-t-elle avec un « schéma de protocole non pris en charge » » ?

Pourquoi l'authentification Go HTTP échoue-t-elle avec un « schéma de protocole non pris en charge » » ?

Barbara Streisand
Libérer: 2024-11-21 11:02:11
original
290 Les gens l'ont consulté

Why Does Go HTTP Authentication Fail with

Authentification HTTP de base dans Go : résolution d'un code d'erreur

En tentant une authentification HTTP de base avec Go, vous pouvez rencontrer le message d'erreur « non pris en charge schéma de protocole ''". Examinons le code et explorons pourquoi ce problème se produit.

Le code problématique est le suivant :

func basicAuth() string {
    req, err := http.NewRequest("GET", "mydomain.example", nil)
Copier après la connexion

L'erreur provient de l'omission de "http://" ou "https : //" préfixe dans l'URL. Pour résoudre ce problème, modifiez le code comme suit :

func basicAuth() string {
    req, err := http.NewRequest("GET", "http://mydomain.example", nil)
Copier après la connexion

Assurez-vous que l'URL que vous fournissez inclut le schéma de protocole correct, soit "http" ou "https".

Un piège supplémentaire : Redirections

Soyez conscient d'un écueil potentiel lié aux redirections. Go-lang supprime les en-têtes spécifiés lors des redirections. Pour surmonter cela, implémentez une fonction de politique de redirection personnalisée qui rajoute l'en-tête :

func redirectPolicyFunc(req *http.Request, via []*http.Request) error{
  req.Header.Add("Authorization","Basic " + basicAuth("username1","password123"))
  return nil
}
Copier après la connexion

Incorporez la politique de redirection personnalisée dans votre client :

client := &http.Client{
  CheckRedirect: redirectPolicyFunc,
}
Copier après la connexion

En suivant ces ajustements, vous peut effectuer avec succès une authentification HTTP de base dans Go et gérer les redirections potentielles sans perdre votre en-tête d'autorisation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal