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
251 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!

source:php.cn
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