HTTP 2.0経由でデータをリクエストしようとしています。 .Net Core 2.2のHttpClientを使用しています。私はWindows 10を使用していますが、製品版のLinuxで実行します。問題は、応答のバージョンが常に「1.1」であるように見えることです。私は何を間違っていますか?
using (var client = new HttpClient())
{
using (var request = new HttpRequestMessage(new HttpMethod("GET"),
"https://duckduckgo.com/"
))
{
request.Version = new Version(2, 0);
var response = await client.SendAsync(request);
Console.WriteLine(response.Version);
}
}
Http/2プロトコルを使用したいが、 プロトコルプロパティ を設定しなかった。そうしてください。使用しているオペレーティングシステムで可能かどうかを確認しましたか。 .NET Core サポートしていません これは、たとえばMac OSの場合はまだです。また、オプション変数 ConfigureKestrelを呼び出す場合 を使用して、ここで説明するように必要なプロパティを設定してください。論理的に、httpバージョンを設定するために この代替方法 を試すこともできます。
Curl呼び出しを行うことで、状況に応じて http/2呼び出し が可能かどうかを確認できます。
さらに、.NET Core(使用する)の元のHttpClientにも問題があります。 HttpClientFactory を使用してください。