Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Download mit https in Delphi 5 (https://www.delphipraxis.net/203456-download-mit-https-delphi-5-a.html)

jik 18. Feb 2020 20:36

Download mit https in Delphi 5
 
Hallo,

weder im Netz irgendwo noch hier werde ich fündig. Mag sein, dass ihr mich als Fossil betrachtet, aber ich liebe mein Delphi 5 sehr (übersichtlich, knackig, schnell, gut, danach gings m.E. nicht gerade bergauf). Leider stehe ich jetzt an mit dem Download von Bildern (oder anderem) von Seiten mit https. THTTPGet liefert leider einen Fehler zurück anstatt einer brauchbaren Datei - was auch logischt ist. Delphi-Upgrade kommt aber nicht infrage. Habt ihr einen Tipp?

Danke schon mal!
jik

hoika 18. Feb 2020 20:36

AW: Download mit https in Delphi 5
 
Hallo,
kannst Du die Indy-Komponenten benutzen?

jik 18. Feb 2020 20:55

AW: Download mit https in Delphi 5
 
Hallo hoika,

von denen hab ich einiges gelesen, aber bin offenbar zu doof, einen Downloadort zu finden :-(
Denn auf der SourceForge-Seite steige ich aus. D.h. ich finde dort nichts.

Edit: es sieht bei denen so aus, als ob es sie erst ab D6 gäbe.

hoika 18. Feb 2020 21:13

AW: Download mit https in Delphi 5
 
Hallo,
vielleicht hilft dir das hier ja

https://stackoverflow.com/questions/...-into-delphi-5

mmw 18. Feb 2020 21:14

AW: Download mit https in Delphi 5
 
Hallo,
https://www.indyproject.org/download/v9/
https://www.indyproject.org/download/v10/

http://www.overbyte.eu/frame_index.html
Dann Products ICS

Gruß

jaenicke 18. Feb 2020 21:25

AW: Download mit https in Delphi 5
 
Das Problem ist, dass die älteren Bibliotheken, die es noch für Delphi 5 gab, auch nur die älteren SSL-Möglichkeiten kennen. So etwas wie TLS 1.2 zur Verschlüsselung usw. gab es damals schlicht noch nicht. Das gilt für Indy 9 wie für ICS für Delphi 5.

Von daher bleibt in Delphi 5 Programmen nur das aktuelle Indy 10 (das in aktuellen Versionen von Delphi auch schon integriert ist) zu nehmen und für Delphi 5 anzupassen (oder eben das genannte ICS). Wie viel Aufwand das ist, kann ich nicht sagen. Aber die Möglichkeiten von Delphi 5 sind eben Lichtjahre hinter aktuellen Versionen zurück, insofern ist die einzige Hoffnung, dass Indy ja relativ abwärtskompatibel ist und kaum neue Features verwendet. Von daher kann der Aufwand sich in Grenzen halten.

Trotzdem fehlen in Delphi 5 selbst einfache Basics, was ja auch der Grund ist, dass die meisten Bibliotheken erst bei Delphi 7 anfangen. Deshalb würde ich vorschlagen, dass du eine externe Exe oder DLL zum Download verwendest. Entweder indem du für diesen Zweck eine aktuelle Version von Delphi installierst und dann die Exe oder DLL in deinem mit Delphi 5 erstellten Programm aufrufst bzw. einbindest oder indem du dafür fertige Tools wie wget verwendest.

jik 18. Feb 2020 21:36

AW: Download mit https in Delphi 5
 
Danke für eure Infos, ist hilfreicher Input, an dem ich anknüpfen kann!

Ist mir klar, dass ich mit D5 Lichtjahre hinten bin, aber damals war der Umstieg auf D6 leider keine Option (Zeitmangel, zu umfangreiche Software). Dafür muss ich jetzt immer wieder mal die Suppe auslöffeln, sei's mit dem hier oder Unicode. Na ja ...

Ich melde mich auf jeden Fall, so oder so.

Redeemer 19. Feb 2020 05:51

AW: Download mit https in Delphi 5
 
Oder noch banaler: TDownloadURL.

hoika 19. Feb 2020 06:32

AW: Download mit https in Delphi 5
 
Hallo,
Zitat:

TDownloadURL.
Mit Delphi5 ?

Redeemer 19. Feb 2020 06:41

AW: Download mit https in Delphi 5
 
Gab's das damals noch nicht? Ich dachte, das gab's schon ewig...

sakura 19. Feb 2020 07:00

AW: Download mit https in Delphi 5
 
Zitat:

Zitat von Redeemer (Beitrag 1457861)
Gab's das damals noch nicht? Ich dachte, das gab's schon ewig...

Ewig schon, aber nicht sooo ewig. Seit Delphi 2009, wenn ich mich recht erinnere.

...:cat:...

sakura 19. Feb 2020 07:02

AW: Download mit https in Delphi 5
 
TDownloadURL nutzt intern übrigens auch URLDownloadToFileA/URLDownloadToFileW ;-)

...:cat:...

jus 19. Feb 2020 09:04

AW: Download mit https in Delphi 5
 
Du könntest auch die Synapse Komponente ausprobieren, laut deren Homepage sollte es mit Delphi 5 gehen. Ich empfehle die neueste Version aus dem Sourceforge Repository runterzuladen. Bei Synapse muß man für SSL zunächst wie auch bei Indy die 2 SSL DLLs runterladen und ins selbe Verzeichnis wie die *.exe Datei kopieren.
Weiters mus man folgende 2 Units im Quellcode einbinden:

Delphi-Quellcode:
implementation

{$R *.dfm}

uses
  ssl_openssl, ssl_openssl_lib;
jus

himitsu 19. Feb 2020 11:40

AW: Download mit https in Delphi 5
 
Oder eine DLL mit was Neuerem kompilieren und dann deine eigene Downloadfunktion importieren. :stupid:

Bernhard Geyer 19. Feb 2020 14:23

AW: Download mit https in Delphi 5
 
Zitat:

Zitat von jik (Beitrag 1457843)
aber ich liebe mein Delphi 5 sehr (übersichtlich, knackig, schnell, gut, danach gings m.E. nicht gerade bergauf).

D5. Ein Glück das ich keine solche alten Delphi-Versionen mehr nutzen muss.
Was ich mittlerweile Codierungszeit mit aktellen Delphi-Versionen spare ...

Das es "nicht gerade bergauf" ging kann man wohl nur behaupten wenn man keine aktuellen Delphi-Versionen nutzt.

Redeemer 19. Feb 2020 16:28

AW: Download mit https in Delphi 5
 
Zitat:

Zitat von sakura (Beitrag 1457863)
Zitat:

Zitat von Redeemer (Beitrag 1457861)
Gab's das damals noch nicht? Ich dachte, das gab's schon ewig...

Ewig schon, aber nicht sooo ewig. Seit Delphi 2009, wenn ich mich recht erinnere.

Nö, mindestens Delphi 7 Pro.

ing 20. Feb 2020 06:30

AW: Download mit https in Delphi 5
 
Hallo,
mit den Indy-Komponenten sollte das problemlos funktionieren:

Code:
unit HTTPS;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}


uses IdHTTP,IdSSLOPENSSL,IdGlobal;

var Http: TidHTTP;
     HTTPError:string;
     SSLHandler:TIdSSLIOHandlerSocketOpenSSL;

procedure HTTPInit(UseSSL:Boolean;Timeout:Integer=2000);
begin
  HTTPError:='';
  if Http=nil then
    Http := TidHTTP.Create(Nil);

  if UseSSL then
  begin
    if SSLHandler=nil then
    begin
      SSLHandler:=TIdSSLIOHandlerSocketOpenSSL.Create;
      SSLHandler.MaxLineAction := maException;
      SSLHandler.SSLOptions.SSLVersions:=[sslvSSLv2, sslvSSLv23, sslvSSLv3, sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2];
      SSLHandler.SSLOptions.Mode := sslmUnassigned;
      SSLHandler.SSLOptions.VerifyMode := [];
      SSLHandler.SSLOptions.VerifyDepth := 0;

    end;

    Http.IOHandler:= SSLHandler;
  end
  else
  begin
    Http.IOHandler:= NIL;
  end;

  Http.ReadTimeout:=Timeout;
end;

procedure HTTPClose;
begin
  if Http<>nil then
  begin
    Http.Free;
    HTTP:=nil;
  end;

  if SSLHandler<>nil then
  begin
    SSLHandler.Free;
    SSLHandler:=nil;
  end;
end;

function LoadURL(const url:string; Timeout:Integer=2000):string;
var UseSSL:Boolean;
begin
  HTTPError:='';
  if Http=nil then
    Http := TidHTTP.Create(Nil);

  UseSSL:=Uppercase(Copy(url,1,5))='HTTPS';

  HTTPInit(UseSSL, Timeout);

  Try
    result := Http.Get(url);
  except
    on e:Exception do
    begin
      Result:='';
      HTTPError:=e.Message;
    end;
  end;

  HTTPClose;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Text := LoadURL('https://www.delphipraxis.net');
end;

end.

jaenicke 21. Feb 2020 18:04

AW: Download mit https in Delphi 5
 
Zitat:

Zitat von ing (Beitrag 1457966)
mit den Indy-Komponenten sollte das problemlos funktionieren:

Aber nicht mit Indy 9 für Delphi 5. Da gibt es z.B. noch kein sslvTLSv1_2 und auch die OpenSSL Version, für die Indy 9 ist, kennt das noch nicht. Und Indy 10 gibt es nicht für Delphi 5, da wird man also vermutlich Hand anlegen müssen, damit es funktioniert.

mjustin 23. Feb 2020 09:21

AW: Download mit https in Delphi 5
 
Zitat:

Zitat von jaenicke (Beitrag 1458082)
Zitat:

Zitat von ing (Beitrag 1457966)
mit den Indy-Komponenten sollte das problemlos funktionieren:

Aber nicht mit Indy 9 für Delphi 5. Da gibt es z.B. noch kein sslvTLSv1_2 und auch die OpenSSL Version, für die Indy 9 ist, kennt das noch nicht. Und Indy 10 gibt es nicht für Delphi 5, da wird man also vermutlich Hand anlegen müssen, damit es funktioniert.

Delphi 5 wird anscheinend noch unterstützt (mit Delphi 6 funktioniert Indy 10 aktuell auch noch in meinen Projekten), zumindest gibt es das Fulld_5.bat Batchfile zum Bauen der Packages noch in Indy 10. Das ist vielleicht ein (kleiner) Hoffnungsschimmer :)

Codehunter 24. Feb 2020 06:57

AW: Download mit https in Delphi 5
 
@jik: Irgendwann stellt sich doch die Frage nach Aufwand und Nutzen. TLS 1.2 und D5 wird Arbeit machen, Umstieg auf ein aktuelles Delphi ebenso. Ich habe auch lange gewartet und bin erst von D7 auf XE4 umgestiegen weil ich genauso dachte wie du. Ganz ehrlich, aus heutiger Sicht ein großer Fehler. Du schreibst nichts darüber ob du privat oder kommerziell programmierst. Aber zumindest für Evaluierungszwecke solltest du dir die aktuelle Community-Edition mal anschauen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 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