Heim >Backend-Entwicklung >C++ >Wie kann ich den Fehler „Konnte keine Vertrauensbeziehung herstellen' beheben, wenn ich HTTPS-Aufrufe mit HttpClient durchführe?

Wie kann ich den Fehler „Konnte keine Vertrauensbeziehung herstellen' beheben, wenn ich HTTPS-Aufrufe mit HttpClient durchführe?

Susan Sarandon
Susan SarandonOriginal
2025-01-18 00:24:13842Durchsuche

How Can I Fix

Verwenden Sie HttpClient, um sichere HTTPS-Anrufe zu tätigen

Frage:

Beim Verwenden von HttpClient zum Senden einer HTTPS-Anfrage tritt ein Fehler auf: „Die zugrunde liegende Verbindung wurde geschlossen: Es konnte keine Vertrauensstellung für den sicheren SSL/TLS-Kanal hergestellt werden.“

Lösung:

Um dieses Problem zu beheben, befolgen Sie bitte diese Schritte:

  1. Sicherheitsprotokoll festlegen:

    Geben Sie das standardmäßig verwendete TLS-Protokoll an. Fügen Sie Ihrem Code die folgenden Zeilen hinzu:

    <code class="language-csharp">System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;</code>
  2. HttpClient-Code ändern:

    HttpClient-Code geändert, um HTTPS-Aufrufe zu unterstützen:

    <code class="language-csharp">HttpClient httpClient = new HttpClient();
    System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
    httpClient.BaseAddress = new Uri("https://foobar.com/");
    httpClient.DefaultRequestHeaders.Accept.Clear();
    httpClient.DefaultRequestHeaders.Accept.Add(
        new MediaTypeWithQualityHeaderValue("application/xml"));
    
    var task = httpClient.PostAsXmlAsync<devicerequest>("api/SaveData", request);</code>

Zusätzliche Hinweise:

  • Bei dieser Lösung wird davon ausgegangen, dass der Server nur höhere TLS-Versionen unterstützt (z. B. TLS 1.2).
  • Wenn der Server ein benutzerdefiniertes Zertifikat oder einen benutzerdefinierten Schlüssel erfordert, ist eine zusätzliche Konfiguration erforderlich.

Das obige ist der detaillierte Inhalt vonWie kann ich den Fehler „Konnte keine Vertrauensbeziehung herstellen' beheben, wenn ich HTTPS-Aufrufe mit HttpClient durchführe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn