Maison  >  Article  >  développement back-end  >  Comment corriger l'erreur « schéma de protocole non pris en charge » » dans l'authentification Go Basic ?

Comment corriger l'erreur « schéma de protocole non pris en charge » » dans l'authentification Go Basic ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-24 03:24:10919parcourir

How to Fix

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!

Déclaration:
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