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)
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)
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 }
Incorporez la politique de redirection personnalisée dans votre client :
client := &http.Client{ CheckRedirect: redirectPolicyFunc, }
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!