如何在Delphi 11中启用HTTP2协议?
Delphi 11 启用HTTP/2协议的配置方案
你写的NetHTTPClient1.ProtocolVersion := 'HTTP_2_0';赋值逻辑本身没有问题,没有生效是因为缺少了几个必要的前置配置,按以下步骤排查修改即可:
- 启用高版本TLS支持
HTTP/2协议强制要求底层使用TLS 1.2及以上版本加密传输,你需要先配置SSL版本参数:
// 优先启用TLS 1.3,兼容TLS 1.2 NetHTTPClient1.SSLVersions := [sslvTLSv1_2, sslvTLSv1_3]; // 再设置HTTP协议版本 NetHTTPClient1.ProtocolVersion := 'HTTP_2_0';
确认组件绑定关系
如果你配套使用TNetHTTPRequest组件发送请求,需要确保TNetHTTPRequest的Client属性已经正确绑定到你修改了配置的NetHTTPClient1实例,避免配置了未实际使用的空实例导致不生效。确认运行环境支持
不同平台的HTTP/2支持依赖系统底层能力:- Windows平台需要系统版本为Windows 10 1607及以上,低版本Windows没有原生HTTP/2支持,组件会自动降级到HTTP/1.1
- Linux、macOS平台需要系统内置的curl库版本不低于7.43.0
确认目标服务端支持HTTP/2
如果请求的目标服务端本身不支持HTTP/2,组件会自动触发兼容降级逻辑,你可以通过抓包或者直接查看请求返回的协议版本字段确认,也可以用命令curl -I --http2 你的目标接口地址提前验证服务端的HTTP/2支持能力。
内容的提问来源于stack exchange,提问作者Blawjack
相关产品推荐
相关产品推荐

