Maison > développement back-end > C++ > Comment puis-je corriger les erreurs « Impossible d'établir une relation de confiance » lors des appels HTTPS avec HttpClient ?

Comment puis-je corriger les erreurs « Impossible d'établir une relation de confiance » lors des appels HTTPS avec HttpClient ?

Susan Sarandon
Libérer: 2025-01-18 00:24:13
original
798 Les gens l'ont consulté

How Can I Fix

Utilisez HttpClient pour passer des appels HTTPS sécurisés

Question :

Lors de l'utilisation de HttpClient pour effectuer une requête HTTPS, une erreur se produit : "La connexion sous-jacente a été fermée : impossible d'établir la confiance pour le canal sécurisé SSL/TLS."

Solution :

Pour résoudre ce problème, veuillez suivre ces étapes :

  1. Définir le protocole de sécurité :

    Spécifiez le protocole TLS utilisé par défaut. Ajoutez les lignes suivantes à votre code :

    <code class="language-csharp">System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;</code>
    Copier après la connexion
  2. Modifier le code HttpClient :

    Code HttpClient modifié pour prendre en charge les appels HTTPS :

    <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>
    Copier après la connexion

Notes supplémentaires :

    Cette solution suppose que le serveur ne prend en charge que les versions TLS supérieures (par exemple, TLS 1.2).
  • Si le serveur nécessite un certificat ou une clé personnalisée, une configuration supplémentaire est requise.

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