Lösen von HttpWebRequest-Basisauthentifizierungsproblemen
Dieser Artikel befasst sich mit einem häufigen Problem, das bei der Verwendung von HttpWebRequest
mit Standardauthentifizierung auftritt: „Die zugrunde liegende Verbindung wurde geschlossen: Beim Senden ist ein unerwarteter Fehler aufgetreten.“ Dieser Fehler entsteht häufig durch Konflikte mit der standardmäßigen Authentifizierungsbehandlung.
Die Lösung besteht darin, den Standardmechanismus zu umgehen und den Authorization
-Header direkt zu verwalten. Dieser Header erfordert die Authentifizierungsmethode („Basic“) und Base64-codierte Anmeldeinformationen.
So implementieren Sie dies:
<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>
Dieses Code-Snippet nimmt den Benutzernamen und das Passwort, kodiert sie mit Base64 mit ISO-8859-1-Kodierung (um die Kompatibilität mit dem Server sicherzustellen) und fügt dann die resultierende Zeichenfolge dem Authorization
-Header von HttpWebRequest
hinzu. Dies ermöglicht eine ordnungsgemäße Authentifizierung der Anfrage, verhindert das Schließen der Verbindung und ermöglicht eine erfolgreiche Kommunikation. Die Verwendung der ISO-8859-1-Kodierung ist entscheidend für die Behebung vieler Authentifizierungsfehler. Durch manuelles Festlegen des Headers vermeidet die Anwendung potenzielle Probleme mit dem Standardauthentifizierungsprozess.
Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Die zugrunde liegende Verbindung wurde geschlossen' bei der HttpWebRequest-Basisauthentifizierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!