无法在 HttpClient .Net 中使用 HTTP2

问题描述 投票:0回答:1

我正在尝试通过 HTTP 2.0 请求数据。我正在使用 .Net 5 中的 HttpClient。我使用的是 Windows 10。问题是响应上的版本似乎始终是“1.1”。我在这里做错了什么?

        var httpClient = new HttpClient();
        string authToken =  "{jwt token}";
        httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authToken);

        var req = new HttpRequestMessage(HttpMethod.Get, "{url}")
        {
            Version = new Version(2, 0)
        };

        var x = httpClient.SendAsync(req).ConfigureAwait(false).GetAwaiter().GetResult();
        var version = x.Version;
        Console.WriteLine(version);
c# .net http dotnet-httpclient http2
1个回答
0
投票

为了强制使用 HTTP2,在您的

HttpClient
请求中,您应该使用 HTTP version 相关属性,如下所示。

  using var client = new HttpClient()
  {
      DefaultRequestVersion = HttpVersion.Version20,
      DefaultVersionPolicy = HttpVersionPolicy.RequestVersionExact
  };
  //make your GET or any other request now
  var response = await client.GetAsync(myUrl);

如果您的目标网络服务器不支持 HTTP2,则会抛出异常。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.