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
 
JDommi

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

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
 


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