AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Datei aus dem Internet herunterladen - geht nicht mehr!
Thema durchsuchen
Ansicht
Themen-Optionen

Datei aus dem Internet herunterladen - geht nicht mehr!

Ein Thema von NicoleWagner · begonnen am 8. Dez 2018 · letzter Beitrag vom 5. Jan 2019
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.077 Beiträge
 
Delphi 12 Athens
 
#1

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 21. Dez 2018, 07:16
Der SSL Fehler zeigt, dass die DLL zu alt ist. Konfiguriert werden muss das normalerweise nicht. Für die neuesten TLS-Versionen braucht man aber OpenSSL DLLs von 2018. Diese finden sich z.B. hier in fertig kompilierter Form:
https://indy.fulgan.com/SSL/
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.600 Beiträge
 
Delphi 7 Professional
 
#2

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 21. Dez 2018, 08:27
Der Fehler ist aber mit den neuesten DLLs (aus https://www.delphipraxis.net/1421201-post70.html) aufgetreten.

Auch wenn man das normalerweise nicht konfigurieren muss, so kann es im Problemfall nicht schaden, wenn man 'ne TIdSSLIOHandlerSocketOpenSSL-Komponnete nutzt und bei der in SSLOptions.Method mal eine Methode konfiguriert, von der man weiß, dass sie unterstützt wird.

Immerhin haben wir hier ein sehr diffuses "Gehtnichmehrproblem", dann kann es nicht schaden, wenn man explizt die unterschiedlichen Möglichkeiten zur Fehlereingrenzung durchgeht, um konkret sagen zu können:

Beim dem bekomme ich diese Fehlermeldung.
Bei diesem jene ...
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#3

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 21. Dez 2018, 15:15
Danke für die Antworten:

Die Tool-Seite 'ionos' zeigt bei Eingabe des vertraulichen Links selbst es als tadellos an, cit:
SSL Zertifikat ist richtig installiert, 0 Warnungen, 0 Fehler.
Das Ziel sieht mir sauber also aus.

Was meine dll Dateien betrifft. Ich habe alle Versionen davon durch: 2013, 2017 zwei davon und 2018. Daran liegt es eher nicht.
Kann es sein, dass es nicht alle wären? Dass ich noch eine dll brauche, die noch fehlt?

Was genau bedeutet "SSL-Bibliothek kann nicht geladen werden'? Was sollte da passieren?
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.600 Beiträge
 
Delphi 7 Professional
 
#4

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 21. Dez 2018, 16:29
Danke für die Antworten:

Die Tool-Seite 'ionos' zeigt bei Eingabe des vertraulichen Links selbst es als tadellos an, cit:
SSL Zertifikat ist richtig installiert, 0 Warnungen, 0 Fehler.
Das Ziel sieht mir sauber also aus.

Was meine dll Dateien betrifft. Ich habe alle Versionen davon durch: 2013, 2017 zwei davon und 2018. Daran liegt es eher nicht.
Kann es sein, dass es nicht alle wären? Dass ich noch eine dll brauche, die noch fehlt?

Was genau bedeutet "SSL-Bibliothek kann nicht geladen werden'? Was sollte da passieren?
Und was von diesen hier wird nun unterstützt?

TSL 1, TSL 1.1, TSL 1.2, SSLv 2, SSLv 3?

Der Fehler besagt: error: 1409442E: SSL routines:ssl3_read_bytes:tlsv1 alert protocol version

Was ist mit den vier übrigen? Schon probiert, sofern sie unterstützt werden?

Bei einigen meiner Programme muss ich explizit die "richtige" Version angeben, damit Indy und der Server der Gegenseite sich unterhalten können.

Mein Vorschlag, eine der unterstützten Versionen explizit anzugeben, kommt nicht nur so aus dem Bauch.

Funktioniert ein Ping von der Kommandozeile auf den Server, der die PDF liefern soll?

DLL kann nicht geladen werden, bedeutet, dass sie nicht gefunden wird, dass eine Schnittstelle in ihr angesprochen wird, die sie nicht enthält ...

Die SSL-Dlls werden zwar immer aktuallisiert (wenn erforderlich), aber dass sie mit den Indykomponenten nicht geladen werden können, habe ich in den letzten (gefühlten Jahrzehnten) noch nicht erlebt.

Da Du aber eine Fehlermeldung der DLLs erhalten hast, kannst Du davon ausgehen, dass sie geladen wurden, andernfalls können sie keinen Protokollfehler ausgeben.

Und wenn Du schon alle Dir vorliegenden Versionen der DLLs "durchhast", kannst Du davon ausgehen, dass das Problem nicht in den Dlls liegt und auch nicht in der Kombination mit den Indykomponenten, sondern irgendwo anders.

Da andere Software ja auch nicht an die PDF kommt, liegt das Problem (vermutlich) sehr viel tiefer.

Mal als Vorschlag:

Eine neue Anwendung erstellen.
'ne TidHTTP-Komponente auf's Formular pappen.
Doppelklick auf's Formular.
Im erzeugten FormCreate ein paar Zeilen Quelltext einfügen:
Delphi-Quellcode:
procedure Form1.FormCreate(Sender: TObject);
begin
  ShowMessage(idHTTP1.Get('https://www.delphipraxis.net/'));
end;
Programm starten.

Was kommt dabei raus?

Inhalt von ShowMessage kann per Strg+C kopiert und hier zwischen Code-Tags eingefügt werden.

Alternativ als Screenshot hier anhängen.
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#5

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 22. Dez 2018, 12:48
So eine Komponente habe ich nicht. (Delphi XE 3)
Wenn ich die Komponenten in der Design-Zeit Ansicht listen lasse, so finde ich unter Internet lediglich: TWebBrowser.

Klingt nach einer heißen Spur.

TSL 1, TSL 1.1, TSL 1.2, SSLv 2, SSLv 3.... ich konnte das aus dem Link nicht ablesen.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.600 Beiträge
 
Delphi 7 Professional
 
#6

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 22. Dez 2018, 13:06
Die Tool-Seite 'ionos' zeigt bei Eingabe des vertraulichen Links selbst es als tadellos an, cit:
SSL Zertifikat ist richtig installiert, 0 Warnungen, 0 Fehler.
Kurz dadrunter gib's 'nen Button Details anzeigen.

Wenn man den anklickt, gibt es sehr detailreiche Informationen zur Seite.

Im Abschnitt Serverkonfiguration sind dann u. a. Aktive Protokolle zu finden.

Und was ist jetzt bitte aus dem Ping geworden, funktioniert das?

TIdHttp ist nicht unter Internet zu finden, sondern unter Indy-Clients. Und die waren schon unter Delphi 7 vorhanden. Würd' mich wundern, wenn Delphi XE3 die nicht kennt, ggfls. mal bei den Packages schauen, ob und was da so installiert ist.
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#7

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 22. Dez 2018, 14:48
jawoll, dort isse.
Ich hatte die ganze Indy-Sache ausgeblendet, daher fand es auch die Suche durch die Komponenten nicht.
Also die Komponente klebt jetzt, doch die Laufzeit will nocht nicht.

Ich kann damit auch so gar nicht umgehen, weil ich sie nie nutzte.
Ratlos lese ich bei dieser Zeile:
ShowMessage(idHTTP1.Get('https://www.delphipraxis.net/'));
=> 'Im Project_donwlad_Url ist eine Exception der Klasse EIdIOHandlerropInvelid mit der Meldung 'Wert für IOHander ist ungültig' aufgetreten.'


ad 'Details anzeigen' / berifft die andere Seite:
Dort kam ich entweder nicht weiter oder es standen dort Daten meines Partners, die ich hier nicht posten kann. Sein Zertifikat und Firmendaten etc.

Ich hoffe, wir kommen bei der Komponente weiter.


ad ping: es lässt sich die Domain anbingen, nicht jedoch die Datei selbst oder deren Oberverzeichnis. Doch das will nichts heißen, denke ich. Vom pingenden Rechner kann FF die Datei anzeigen. Also ist sie da.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.600 Beiträge
 
Delphi 7 Professional
 
#8

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 22. Dez 2018, 15:07
Du entwickelst doch in einer VM. Das Pingen muss aus der VM heraus funktionieren. Wenn der Hostrechner der VM erfolgreich ein Ping absetzen kann, heißt das noch lange nicht, dass das auch aus der VM funktioniert.

Dateien kann man nicht anpingen, sondern nur Rechner, IP-Adressen, Domänen.

Solange es nicht aus der VM heraus funktioniert und die Ping-Ergebnisse aus der VM nicht mit denen vom Hostrechner vergleichbar sind, ist jeder andere Versuch der Problemlösung unsinnig und nicht zielführend.

Wenn Du mit dem Ping aus der VM heraus erfolgreich bist, kannst Du an die Behebung der Exception gehen.

Dazu pappe bitte noch 'ne Komponente TIdSSLIOHandlerSocketOpenSSL (oder so ähnlich im Namen) aufs Formular und trage diese im Objektinspektor für die TIdHttp-Komponente bei der Eigenschaft IOHandler ein.

Dann erneut probieren und berichten, was beim ShowMessage rauskommt.
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#9

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 22. Dez 2018, 18:23
ping ist in allen Fällen positiv:
host: TTL = 54
VM: TTL = 128

habe die IP Nummer angepingt, durch die ich mittlerweile die Domain ersetzt habe.


zu TIdSSLIOHandlerSocketOpenSSL habe ich unter dem Reiter Indy nichts gefunden, was irgendwie ähnlich aussieht.

Drücke ich auf die Eigenschaft Handler bei dHTTP auf F1 lese ich (und verstehe kein Wort):
Data.Cloud.CloudAPI.TCloudHTTP.IOHandlerAus RAD Studio VCL Reference
Übergeordnet: TCloudHTTP
property IOHandler: IIPSSLIOHandlerSocketOpenSSL read GetIOHandler write SetIOHandler;

Ich fürchte, ich arbeite nicht mit Properties. Bin hier leider gar nicht schlau.
  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:36 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