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