HttpClient による HTTPS 通信の保護
HttpClient
クラスは HTTP リクエストを簡素化しますが、特にサーバーが TLS 1.2 などの新しい TLS バージョンのみをサポートしている場合、HTTPS 接続では問題が発生することがあります。 この記事では、この一般的な問題に対処します。
TLS 1.2 (およびその他の関連バージョン) との互換性を確保するには、次のコード行を追加します。
<code class="language-csharp">System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;</code>
このコマンドは TLS 1.2、TLS 1.1、および TLS 1.0 を明示的に有効にし、さまざまなサーバーとの幅広い互換性を提供します。
これを HttpClient
コードに統合する方法は次のとおりです:
<code class="language-csharp">HttpClient httpClient = new HttpClient(); // Enable TLS 1.2 and other compatible protocols 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>
この調整を組み込むことで、アプリケーションは安全な TLS プロトコルを使用して HTTPS サーバーに確実に接続し、データ交換を成功させることができます。
以上がTLS 1.2 を使用して HttpClient で HTTPS 呼び出しを行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。