Maison > développement back-end > C++ > Comment corriger l'erreur « La connexion sous-jacente a été fermée » avec l'authentification de base HttpWebRequest ?

Comment corriger l'erreur « La connexion sous-jacente a été fermée » avec l'authentification de base HttpWebRequest ?

Mary-Kate Olsen
Libérer: 2025-01-10 19:43:12
original
533 Les gens l'ont consulté

How to Fix

Résoudre les problèmes d'authentification de base HttpWebRequest

Cet article traite d'un problème courant rencontré lors de l'utilisation de HttpWebRequest avec l'authentification de base : "La connexion sous-jacente a été fermée : une erreur inattendue s'est produite lors d'un envoi." Cette erreur résulte souvent de conflits avec la gestion de l'authentification par défaut.

La solution est de contourner le mécanisme par défaut et de gérer directement l'en-tête Authorization. Cet en-tête nécessite la méthode d'authentification ("Basic") et les informations d'identification codées en base64.

Voici comment mettre en œuvre cela :

<code class="language-csharp">var username = "abc";
var password = "123";
string encoded = Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1")
                                  .GetBytes(username + ":" + password));
httpWebRequest.Headers.Add("Authorization", "Basic " + encoded);</code>
Copier après la connexion

Cet extrait de code prend le nom d'utilisateur et le mot de passe, les encode en base64 avec l'encodage ISO-8859-1 (pour garantir la compatibilité avec le serveur), puis ajoute la chaîne résultante à l'en-tête Authorization du HttpWebRequest. Cela permet à la demande de s'authentifier correctement, empêchant la fermeture de la connexion et permettant une communication réussie. L'utilisation du codage ISO-8859-1 est cruciale pour résoudre de nombreux échecs d'authentification. En définissant manuellement l'en-tête, l'application évite les problèmes potentiels avec le processus d'authentification par défaut.

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