我正在尝试通过 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);
为了强制使用 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,则会抛出异常。