AGB  ·  Datenschutz  ·  Impressum  







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

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 KodeZwerg
KodeZwerg

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

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
 
#2

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
 
#3

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
 
#4

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
 
#5

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
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, 10:07
So wie ich mich jetzt gerade belesen habe ist das möglicherweise gar kein Bug sondern so gewollt. Die Kombination von SSL und Stream Compression öffnet wohl Sicherheitslücken.
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
JDommi

Registriert seit: 20. Sep 2007
9 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Indy TIdHTTP mit SSL und GZip

  Alt 19. Dez 2018, 09:34
Vor einiger Zeit hatte ich das gleiche Problem.
Ich habe es mit Indy (Delphi 10.3) folgendermaßen gelöst:

1. IdHTTP
2. IdCompressorZLib
3. IdCompressionIntercept (nicht getestet, ob diese Indy-Komponente wirklich erforderlich ist)

Wichtig ist: GetPage muss zweimal aufgerufen werden.

Delphi-Quellcode:
  object IdHTTP1: TIdHTTP
    Intercept = IdCompressionIntercept1
    AllowCookies = True
    HandleRedirects = 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 = 16
    Top = 8
  end
  object IdCompressorZLib1: TIdCompressorZLib
    Left = 72
    Top = 8
  end
  object IdCompressionIntercept1: TIdCompressionIntercept
    CompressionLevel = 0
    Left = 128
    Top = 8
  end
Delphi-Quellcode:
function GetPage(aURL, sFile: string): string;
const
  HTTP_RESPONSE_OK = 200;
var
  Response: TStringStream;
  fehler: string;
begin
  Result := '';
  Response := TStringStream.Create('');
    try
      Form1.IdHTTP1.Get(aURL, Response);
      if Form1.IdHTTP1.ResponseCode = HTTP_RESPONSE_OK then begin
        Result := Response.DataString;
      end else begin
        fehler := 'ERROR: '+inttostr(Form1.IdHTTP1.ResponseCode)+' '+Form1.IdHTTP1.ResponseText;
        Response.WriteString(fehler);
      end;
    except
      fehler := 'ERROR: '+inttostr(Form1.IdHTTP1.ResponseCode)+' '+Form1.IdHTTP1.ResponseText;
      Response.WriteString(fehler);
    end;
    Response.SaveToFile(sFile);

    Response.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  GetPage(URL,'FileToSave.txt');
  GetPage(URL,'FileToSave.txt');
end;
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:07 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