Authentification HTTP de base dans Go : dépannage d'une erreur courante
Lors de la tentative d'implémentation de l'authentification HTTP de base avec le code fourni, une erreur se produit : "schéma de protocole non pris en charge ''". Cela peut être attribué à un oubli dans le code lors de la création de l'objet de requête.
Pour résoudre cette erreur, assurez-vous que le schéma correct est spécifié dans l'URL de la requête. L'exemple donné tente de faire une requête à "mydomain.example" sans spécifier de schéma de protocole, ce qui conduit à l'erreur.
Pour rectifier cela, modifiez le code pour spécifier explicitement le schéma HTTPS comme suit :
req, err := http.NewRequest("GET", "https://mydomain.example", nil)
De plus, il convient de noter que le client HTTP de Go peut rencontrer un autre problème lors de la gestion des redirections. Par défaut, le client ne conserve pas les en-têtes personnalisés, y compris l'en-tête d'autorisation de base, lors des redirections.
Pour contourner ce comportement, vous pouvez définir une fonction de politique de redirection personnalisée qui ajoute explicitement l'en-tête d'autorisation lors des redirections. Cela garantit que les informations d'authentification sont conservées tout au long du processus de redirection.
Voici un exemple de fonction de stratégie de redirection personnalisée :
func redirectPolicyFunc(req *http.Request, via []*http.Request) error { req.Header.Add("Authorization", "Basic " + basicAuth(username, password)) return nil }
En utilisant cette stratégie personnalisée dans le client HTTP, vous vous assurez que l'en-tête d'autorisation de base est correctement géré lors des redirections, permettant une authentification transparente.
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!