簡體   English   中英

HTTP請求 Http 2.0

[英]HttpRequest Http 2.0

我正在嘗試發出 HTTP/2.0 請求,但無法使其正常工作。 根據這個和其他帖子https://stackoverflow.com/a/53776383/18171693 .NET > 3.0 應該支持它但我無法讓它工作。

       Debug.WriteLine("Version:"+ Environment.Version.ToString());

        var client = new HttpClient();

        var req = new HttpRequestMessage(HttpMethod.Get,"https://http2.akamai.com/demo")
        {
            Version = new Version(2, 0)
        };

        var x = await client.SendAsync(req);

上面的代碼生成:

Version:4.0.30319.42000
Exception thrown: 'System.ArgumentException' in mscorlib.dll
An exception of type 'System.ArgumentException' occurred in mscorlib.dll but was not handled in user code
Only HTTP/1.0 and HTTP/1.1 version requests are currently supported.

您沒有使用 .NET-Core。

您使用的版本 - 4.0.30319.42000 - 對應於 .NET Framework 4.6+,而不是 .NET 核心。

如何:確定安裝了哪些 .NET 框架版本

公共語言運行時 (CLR),用於管理和執行應用代碼。 單個 CLR 版本通常支持多個 .NET Framework 版本。 例如,CLR 版本 4.0.30319.xxxxx(其中xxxxx小於 42000)支持 .NET 框架版本 4 到 4.5.2。 大於或等於 4.0.30319.42000 的 CLR 版本支持以 .NET Framework 4.6 開頭的 .NET Framework 版本

.NET 框架僅支持 Http 版本 1/1.1,但是這個問題How to make the .net HttpClient use http 2.0? 有一些解決方法。

我已經測試了你的代碼,它適用於 .NET core 3.1 和 .NET 6. Demo in .NET 6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM