AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy TIdHTTP mit SSL und GZip
Thema durchsuchen
Ansicht
Themen-Optionen

Indy TIdHTTP mit SSL und GZip

Ein Thema von Codehunter · begonnen am 28. Sep 2018 · letzter Beitrag vom 19. Dez 2018
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#1

Indy TIdHTTP mit SSL und GZip

  Alt 28. Sep 2018, 08:10
Moin!

Ich bekomme einfach die Kombination HTTPS+GZip Encoding nicht zum Laufen. Zum Testen habe ich eine ganz simple Anwendung zusammengeklickt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if IdHTTP1.Compressor.IsReady then begin
    IdHTTP1.Get('https://www.google.de/');
  end else begin
    ShowMessage('ZLib nicht bereit');
  end;
end;
DFM:
Delphi-Quellcode:
  object IdHTTP1: TIdHTTP
    IOHandler = IdSSLIOHandlerSocketOpenSSL1
    AllowCookies = True
    ProxyParams.BasicAuthentication = False
    ProxyParams.ProxyPort = 0
    Request.ContentLength = -1
    Request.ContentRangeEnd = -1
    Request.ContentRangeStart = -1
    Request.ContentRangeInstanceLength = -1
    Request.Accept = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
    Request.BasicAuthentication = False
    Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)'
    Request.Ranges.Units = 'bytes'
    Request.Ranges = <>
    HTTPOptions = [hoForceEncodeParams]
    Compressor = IdCompressorZLib1
    Left = 668
    Top = 225
  end
  object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL
    MaxLineAction = maException
    Port = 0
    DefaultPort = 0
    SSLOptions.Method = sslvTLSv1_2
    SSLOptions.SSLVersions = [sslvTLSv1_2]
    SSLOptions.Mode = sslmUnassigned
    SSLOptions.VerifyMode = []
    SSLOptions.VerifyDepth = 0
    Left = 676
    Top = 289
  end
  object IdCompressorZLib1: TIdCompressorZLib
    Left = 772
    Top = 265
  end
Schaue ich mir den Request dann im Wireshark an (siehe Bild unten), funktioniert zwar TLS 1.2 ganz wunderbar, allerdings wird schon im Client Hello keinerlei Compression Method angefragt. Entsprechend ist es dem Server auch völlig Wumpe und antwortet unkomprimiert.

Die ZLib ist offensichtlich geladen, sonst würde der Request gar nicht abgesetzt. Ich habe auch schon versucht, in den RequestParams.AcceptEncoding := 'gzip, deflate' zu setzen. In manchen Tutorials heißt es, man soll das explizit setzen, in anderen Tutorials wiederum heißt es gerade NICHT setzen. Es geht aber weder MIT noch OHNE AcceptEncoding.

Grüße
Cody
Angehängte Grafiken
Dateityp: jpg Image1.jpg (84,4 KB, 22x aufgerufen)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Indy TIdHTTP mit SSL und GZip

  Alt 28. Sep 2018, 08:25
Ich glaube da fehlt noch sowas wie IdHttp.Request.AcceptEncoding := 'gzip, deflate';
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#3

AW: Indy TIdHTTP mit SSL und GZip

  Alt 28. Sep 2018, 08:34
Ich glaube da fehlt noch sowas wie IdHttp.Request.AcceptEncoding := 'gzip, deflate';
Ähm... Gelesen hast du aber schon bis zum Schluss?
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Indy TIdHTTP mit SSL und GZip

  Alt 28. Sep 2018, 08:37
arg, ne, augen waren nur auf source, tut mir leid!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Indy TIdHTTP mit SSL und GZip

  Alt 28. Sep 2018, 08:54
IdHTTP1.Request.AcceptEncoding := 'gzip, deflate;q=1.0, *;q=0';
So sollte es forciert werden und wenn Server das nicht kann gibts 406 (not acceptable).


Ps: die zlib dll sollte sich im .exe verzeichnis befinden.
Gruß vom KodeZwerg

Geändert von KodeZwerg (28. Sep 2018 um 08:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#6

AW: Indy TIdHTTP mit SSL und GZip

  Alt 28. Sep 2018, 09:10
IdHTTP1.Request.AcceptEncoding := 'gzip, deflate;q=1.0, *;q=0'; So sollte es forciert werden und wenn Server das nicht kann gibts 406 (not acceptable).
Ps: die zlib dll sollte sich im .exe verzeichnis befinden.
Beides getan, beides ohne Erfolg. Wireshark erzählt weiterhin "Compression method: null". Mit dem Serverbetreiber (der worum es eigentlich geht, nicht der Gockel wie im Test) it abgestimmt, dass GZip tatächlich aktiviert ist.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  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 21:11 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