启用协议 HTTP2 Delphi 11

Posted

技术标签:

【中文标题】启用协议 HTTP2 Delphi 11【英文标题】:Enable Protocol HTTP2 Delphi 11 【发布时间】:2021-11-16 15:17:09 【问题描述】:

如何启用 HTTP2 Delphi 11 ? 我一直在尝试使用代码,但无法正常工作

NetHTTPClient1.ProtocolVersion := 'HTTP_2_0';

【问题讨论】:

【参考方案1】:

这应该可行:

implementation

uses
  System.Net.HttpClient;

procedure DoSomeHTTPThings;
var
  http: THTTPClient;
  httpresponse: IHTTPResponse;
  stringstream: TSTringStream;
begin
  http := THTTPClient.Create;
  stringstream := TStringStream.Create;
  try
    http.ProtocolVersion := THTTPProtocolVersion.HTTP_2_0;
    httpresponse := http.Get('http://exampleurl.com', stringstream);
    case httpresponse.Version of
      THTTPProtocolVersion.UNKNOWN_HTTP: ;
      THTTPProtocolVersion.HTTP_1_0: ;
      THTTPProtocolVersion.HTTP_1_1: ;
      THTTPProtocolVersion.HTTP_2_0: ;
    end;
  finally
    stringstream.Free;
    http.Free;
  end;
end;

编辑:2021-09-23 12:23:将代码更新为您在评论中的问题

【讨论】:

如何从响应中获取协议版本? 更新了我的答案 谢谢你的回答,但我检查提琴手为什么 HTTP/1.1 ? image.prntscr.com/image/pETAOJS6QpeX2FYEKcQasw.jpg 我不是专家,但我不知道是否必须使用发送请求的相同协议版本来回答。好像不是。 @Blawjack 该网站不是论坛/聊天室:创建 (a) 可以回答的新问题,而不是依赖 cmets。严格来说UNKNOWN_HTTP 可以表示HTTP/0.9

以上是关于启用协议 HTTP2 Delphi 11的主要内容,如果未能解决你的问题,请参考以下文章

http2 在协议中显示 http1

我们是不是需要在 Apache 服务器上启用 http2,如果 CDN 启用了 Http2

nginx如何启用对HTTP2的支持 | nginx如何验证HTTP2是否已启用

启用 HTTP2 服务器推送 Nginx

如何启用curl命令HTTP2支持

记录nginx启用http2后不生效的问题