AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Download einer Datei in App

Ein Thema von Rued · begonnen am 17. Mär 2025 · letzter Beitrag vom 18. Mär 2025
Antwort Antwort
Benutzerbild von Rued
Rued

Registriert seit: 14. Mai 2008
Ort: Schleching
92 Beiträge
 
Delphi 12 Athens
 
#1

Download einer Datei in App

  Alt 17. Mär 2025, 12:53
Hallo!
Eigentlich ganz schön, noch einmal etwas Neues zu beginnen, aber manchmal macht mich das wahnsinnig, dass kaum `was funzzt, was bei PC-Anwendungen seit fast dreißig Jahren funzzt.

Ich will in meiner Android-App eine Datei herunterladen und habe es zunächst ganz einfach probiert:

Delphi-Quellcode:
procedure Herunterladen(Quelle, Ziel: string);
var Stream: TMemoryStream;
begin

  Stream := TMemoryStream.Create;

  try
    FMain.IdHTTP1.Get(Quelle, Stream);
    Stream.SaveToFile(Ziel);
  finally
    Stream.Free;
    FMain.IdHTTP1.Free;
  end;

end;
Ergebnis ist eine Fehlermeldung:
Im Projekt Name.apk ist eine Exception der Klasse EIdOSSLCouldNotLoadSSLLibrary mit der Meldung 'SSL.-Bibliothek konnte nicht geladen werden.' aufgetreten.

Also habe ich aufgerüstet. Alles, was nicht schnell genug auf den Bäumen war, in die Uses gefercht:
Delphi-Quellcode:
  System.Net.URLClient, System.Net.HttpClient, System.Net.HttpClientComponent,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  IdSSLOpenSSL, IdSSLOpenSSLHeaders, IdIOHandler,
  IdIOHandlerSocket, IdIOHandlerStack, IdSSL;
Über "Bereitstellung" unter "Projekt" die Dateien libcrypto.so.1.1 und libssl.so.1.1 eingebunden.

Und die Routine wie folgt erweitert:
Delphi-Quellcode:
procedure Herunterladen(Quelle, Ziel: string);
var
  Stream: TMemoryStream;
  HTTP: TIdHTTP;
  SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
  Stream := TMemoryStream.Create;
  HTTP := TIdHTTP.Create(nil);
  SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

  try
    SSLHandler.SSLOptions.Method := sslvTLSv1_2;
    SSLHandler.SSLOptions.Mode := sslmUnassigned;
    HTTP.IOHandler := SSLHandler;

    HTTP.Get(Quelle, Stream);
    Stream.SaveToFile(Ziel);
  finally
    Stream.Free;
    SSLHandler.Free;
    HTTP.Free;
  end;
end;
Trauriges Ergebnis ist dieselbe Fehlermeldung.

Wie bekomme ich die dlls eingebunden?
Rüdiger Droste
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.237 Beiträge
 
Delphi 2007 Architect
 
#2

AW: Download einer Datei in App

  Alt 17. Mär 2025, 13:22
Hi,
ich glaube nicht das Indy diese Libs nimmt. Zumal das 1.1 ist und nicht 1.0.
Sollte Indy die System Libs nehmen klappt es 1000pro nicht. Das kann Indy nicht. Zu neu...

Selbst wenn Indy diese 1.0 Libs nehmen würde, kann es zu 90% sein sein das es trotzdem nicht klappt. Es gibt kaum noch Server die damit Arbeiten.

Fast überlesen: DLLs kannst du auf dem System nicht nutzen.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (17. Mär 2025 um 13:25 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.191 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Download einer Datei in App

  Alt 17. Mär 2025, 13:43
Da wurde ".dll" wohl nur als Synonym verwendet.

Geschrieben wurde weiter .so, das wird für Android wahrscheinlich das richtige sein (kenne mich mit Android nicht aus).
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
722 Beiträge
 
Delphi 12 Athens
 
#4

AW: Download einer Datei in App

  Alt 17. Mär 2025, 14:32
Ich habe Indy mit SSL auf Android auch nie hinbekommen.

Schau dir mal TNetHTTPClient an. Läuft hier unter Android und IOS problemlos.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.609 Beiträge
 
Delphi 12 Athens
 
#5

AW: Download einer Datei in App

  Alt 17. Mär 2025, 14:38
Schau dir mal TNetHTTPClient an. Läuft hier unter Android und IOS problemlos.
Der Vorteil der bordeigenen Komponenten ist eben, dass sie die SSL-Unterstützung des Betriebssystems verwenden. Indy ist soweit ich weiß immer auf externe Bibliotheken angewiesen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.237 Beiträge
 
Delphi 2007 Architect
 
#6

AW: Download einer Datei in App

  Alt 17. Mär 2025, 15:04
Oder er soll Synapse nehmen. Das müsste auch auf Handy laufen. Zumal das OpenSSL 3.x kann.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
fisipjm
Online

Registriert seit: 28. Okt 2013
328 Beiträge
 
Delphi 12 Athens
 
#7

AW: Download einer Datei in App

  Alt 17. Mär 2025, 15:37
Oder er soll Synapse nehmen. Das müsste auch auf Handy laufen. Zumal das OpenSSL 3.x kann.
TNetHTTPClient kann auch SSL 3 - Außerdem läuft es auch auf iOS. In meinen Augen kein Vorteil von Synapse gegenüber der Systemkomponente.
  Mit Zitat antworten Zitat
Benutzerbild von Rued
Rued

Registriert seit: 14. Mai 2008
Ort: Schleching
92 Beiträge
 
Delphi 12 Athens
 
#8

AW: Download einer Datei in App

  Alt 17. Mär 2025, 15:58
Junge, Junge - und ich versaue mir den Sonntag mit TIdSSLIOHandlerSocketOpenSSL.
Ich danke herzlich für den Hinweis auf TNetHTTPClient - damit läuft es.
Rüdiger Droste
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.237 Beiträge
 
Delphi 2007 Architect
 
#9

AW: Download einer Datei in App

  Alt Gestern, 15:26
Junge, Junge - und ich versaue mir den Sonntag mit TIdSSLIOHandlerSocketOpenSSL.
Das habe ich mit Indy auch schon durch. Am Anfang als die immer mehr Umgestellt hatten. Liefen einige meiner Tools nicht mehr. Hatte erst verzweifelt ein update gesucht.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  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 08:17 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 by Thomas Breitkreuz