AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit HTTP2-Protokoll mit THTTPClient
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit HTTP2-Protokoll mit THTTPClient

Ein Thema von HighBaer · begonnen am 7. Feb 2022 · letzter Beitrag vom 9. Feb 2022
Antwort Antwort
HighBaer

Registriert seit: 11. Aug 2008
Ort: Köln
8 Beiträge
 
Delphi 11 Alexandria
 
#1

Problem mit HTTP2-Protokoll mit THTTPClient

  Alt 7. Feb 2022, 10:11
ich versuche in Delphi 11 mit "THTTPClient" der Unit "System.Net.HttpClient" das HTTP2-Protokoll zu verwenden:
Code:
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.
  • Muss noch irgendwas zusätzlich angegeben werden?
  • Ist der Aufruf so eventuell falsch?
  • Ist möglicher Weise (wenn auch unwahrscheilich) die Net-Komponente fehlerhaft?

Ich gehe ohne Proxy ins Internet!

Schon mal vielen Dank für Tipps!

Schöne Grüße aus Köln ...

Geändert von HighBaer ( 7. Feb 2022 um 10:14 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.826 Beiträge
 
Delphi 12 Athens
 
#2

AW: Problem mit HTTP2-Protokoll mit THTTPClient

  Alt 7. Feb 2022, 21:01
Vermutlich kann man im Request/Header irgendwo angeben welche HTTP Version man will/kann.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Problem mit HTTP2-Protokoll mit THTTPClient

  Alt 7. Feb 2022, 21:53
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)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
HighBaer

Registriert seit: 11. Aug 2008
Ort: Köln
8 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Problem mit HTTP2-Protokoll mit THTTPClient

  Alt 9. Feb 2022, 10:14
Vielen Dank für die Antworten.

@TurboMagic:
Zitat:
Vermutlich kann man im Request/Header irgendwo angeben welche HTTP Version man will/kann.
Ich dachte, genau das würde die Angabe "NetClient.ProtocolVersion := THTTPProtocolVersion.HTTP_2_0;" bewirken.

@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 ...
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz