![]() |
Problem mit HTTP2-Protokoll mit THTTPClient
ich versuche in Delphi 11 mit "THTTPClient" der Unit "System.Net.HttpClient" das HTTP2-Protokoll zu verwenden:
Code:
Wenn man "https://www.google.com" z.B. bei Firefox aufruft, dann wird bei Protokoll "http2" zurückgegeben.
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} 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.
Ich gehe ohne Proxy ins Internet! Schon mal vielen Dank für Tipps! Schöne Grüße aus Köln ... |
AW: Problem mit HTTP2-Protokoll mit THTTPClient
Vermutlich kann man im Request/Header irgendwo angeben welche HTTP Version man will/kann.
|
AW: Problem mit HTTP2-Protokoll mit THTTPClient
Mir steht nur Delphi Rio zur Verfügung, es sieht so aus als ob nur bis http 1.1 support integriert wurde.
Also kein Fehler deines Quelltextes sondern eher die Embarcadero WinAPI Umsetzung. Entweder selbst einen Wrapper basteln oder die Sources direkt modifizieren. (getestet über TWinHTTPClient und TWinHTTPClient.DoExecuteRequest müsste dafür verantwortlich sein) |
AW: Problem mit HTTP2-Protokoll mit THTTPClient
Vielen Dank für die Antworten.
@TurboMagic: Zitat:
@KodeZwerg: Ich habe mir die Routinen mal genauer angesehen und im Debuger ausführen lassen. Das sieht aber (soweit ich das beurteilen kann) korrekt aus. Letztlich wird für die Angabe des Protokolls die Windows-Routine "WinHttpSetOption" mit den korrekten Parametern aufgerufen, sofern da die Dokumentation von Microsoft korrekt ist, von dem wohl auszugehen ist. Auch der eigentliche Request wird in einer Windows-Routine durchgeführt. Ich habe so das Gefühl, dass da noch irgendwas anderes eingestellt werden muss. Schöne Grüße aus Köln ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz