Autor Beitrag
HighBaer
Hält's aus hier
Beiträge: 2

Win 10
Delphi 11 Prof
BeitragVerfasst: Mi 12.01.22 16:36 
Hallo Leute,

ich versuche in Delphi 11 mit "THTTPClient" der Unit "System.Net.HttpClient" das HTTP2-Protokoll zu verwenden:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var Res : integer;
var NetClient := System.Net.HttpClient.THTTPClient.Create;
try
  NetClient.ProtocolVersion := THTTPProtocolVersion.HTTP_2_0;
  var Response := NetClient.Get('https://www.google.com');
  if Response.StatusCode = 200 then begin
    case Response.Version of
      THTTPProtocolVersion.UNKNOWN_HTTP: Res := 0;
      THTTPProtocolVersion.HTTP_1_0: Res := 1;
      THTTPProtocolVersion.HTTP_1_1: Res := 2;
      THTTPProtocolVersion.HTTP_2_0: Res := 3;
    end{case}
  end{if}
finally
  NetClient.Free;
end{try .. finally}


Wenn man "https://www.google.com" z.B. bei Firefox aufruft, dann wird bei Protokoll "http2" zurückgegeben.
Bei meinem Testprogramm wird aber "HTTP_1_1" als Response.Version zurückgegeben. Also hat es scheinbar mit Http2 nicht geklappt.
Leider sind die "Net"-Komponenten recht spartanisch dokumentiert und im Internet findet man kaum etwas dazu.


  1. Muss noch irgendwas zusätzlich angegeben werden?
  2. Ist der Aufruf so eventuell falsch?
  3. Ist möglicher Weise (wenn auch unwahrscheilich) die Net-Komponente fehlerhaft?


Schon mal vielen Dank für Tipps!

Edit: Ich vergaß: Ich gehe ohne Proxy ins Internet!

_________________
Viele Grüße aus Köln ...
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 12.01.22 17:33 
Hallo und :welcome:

die Komponente scheint nur HTTP 1.0 und 1.1 zu unterstützen. Vllt. hilft dir Delphi's TNetHTTPClient descendant supporting http2 ?
HighBaer Threadstarter
Hält's aus hier
Beiträge: 2

Win 10
Delphi 11 Prof
BeitragVerfasst: Do 13.01.22 11:51 
Hallo Th69,

Danke für die schnelle Antwort:
Zitat:
die Komponente scheint nur HTTP 1.0 und 1.1 zu unterstützen. Vllt. hilft dir Delphi's TNetHTTPClient descendant supporting http2 ?


Das kannte ich schon. Hätte nur gedacht, dass in den fast drei Jahren von Delphi 10.3.1 zu Delphi 11 sich da was getan hätte. Das Http2-Protokoll ist ja auch nicht erst vor ein paar Wochen festgelegt worden. Wundert mich auch, dass es da einen Wert zum Auswählen des Http2-Protokolls gibt, wenn es dann doch nicht unterstütz wird.

Hat noch jemand einen Tipp?

_________________
Viele Grüße aus Köln ...