温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

在.Net Framework应用中请求HTTP2站点的问题怎么解决

发布时间:2022-07-08 09:31:32 来源:亿速云 阅读:144 作者:iii 栏目:开发技术

这篇文章主要介绍“在.Net Framework应用中请求HTTP2站点的问题怎么解决”,在日常操作中,相信很多人在在.Net Framework应用中请求HTTP2站点的问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在.Net Framework应用中请求HTTP2站点的问题怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

什么是HTTP2及依赖条件

HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),简称为h3(基于TLS/1.2或以上版本的加密连接)或h3c(非加密连接)[1],是HTTP协议的的第二个主要版本,使用于全球资讯网。

多数主流浏览器已经在2015年底支持了该协议。[9]此外,根据W3Techs的数据,截至2021年10月,全球有46.5%的网站支持了HTTP/2。

在.Net Framework应用中请求HTTP2站点的问题怎么解决

划重点:HTTP2依赖的TLS协议版本号必须大于等于1.2,因此后文就分别针对Windows系统、Net Framework框架对HTTP2、TLS1.2的支持情况来梳理。

Windows 对HTTP2的支持情况?

调研结论:需要Windows Server 2016或者Windows 10及更高版本。

在.Net Framework应用中请求HTTP2站点的问题怎么解决

Windows对TLS1.2的支持情况?

结论:Windows 8.1、Windows Server 2012 R2、Windows 10、Windows Server 2016 和更高版本的 Windows 在本机支持 TLS 1.2。

在.Net Framework应用中请求HTTP2站点的问题怎么解决

.Net Framework对HTTP2的支持情况?

结论:不支持!但是有解决方案:安装nuget包System.Net.Http.WinHttpHandler

在.Net Framework应用中请求HTTP2站点的问题怎么解决

nuget包介绍如图所示:

在.Net Framework应用中请求HTTP2站点的问题怎么解决

根据简介可以得知:该nuget包是将Windows系统的WinHTTP接口封装,也就是说程序发起HTTP请求是通过Windows实现,而不是HttpClientHandler。而根据前面的调研,Windows对HTTP2和TLS1.2的支持情况已经非常明确。

.Net Framework对TLS1.2的支持情况?

结论:框架.Net Framework 4.6.2及以上支持tls1.2

在.Net Framework应用中请求HTTP2站点的问题怎么解决

核心代码片段

现在确保Windows系统能够满足最低要求 ,即可编写测试应用来验证请求。下面是代码片段,我在Windows Server 2016+.NET Framework 4.8环境可以请求成功。

try
{
    string url = "https://api.push.apple.com" + (":443") + "/3/device/" + appleDeviceToken;
    var req = new HttpRequestMessage(HttpMethod.Post, url);
    req.Version = new Version(2, 0);
    req.Content = new JsonContent("{}");
    var resp = httpClient.SendAsync(req).Result;
    string respContent = resp.Content.ReadAsStringAsync().Result;
    this.outputBox.Text += respContent;
}
catch (Exception ex)
{
    this.exceptionBox.Text = ex.ToString();
}

到此,关于“在.Net Framework应用中请求HTTP2站点的问题怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI