Hallo!
Aus meinen Programmen wird auf Dateien auf meinem Server-Platz zugegriffen. Mal wird nur geprüft, ob eine Datei vorhanden ist, mal wird eine Datei auf den Server geschrieben, mal wird eine Datei heruntergeladen. Jetzt bin ich auf https gewechselt und ich ich bekomme die neuen, notwendigen Routinen nicht hin.
Das Herunterladen klappt bei einigen Anwendern mit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| Function herunterladen(quelle,ziel:string):boolean; var URI : TIdURI; IOHandler : TIdSSLIOHandlerSocketOpenSSL; HTTP : TIdHTTP; FileStream: TFileStream; begin
URI := TIdURI.Create(quelle);
HTTP := TIdHTTP.Create(nil); if URI.Protocol = 'https' then begin IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); HTTP.IOHandler := IOHandler; end; FileStream:= TFileStream.Create(Ziel, fmCreate); try HTTP.Get(URI.GetFullURI([ofAuthInfo]), FileStream); finally
end;
FileStream.Free; result := true; end; |
Bei einigen Anwendern kommt die Fehlermeldung "Could not load SSL library". Mit Bibliotheken habe ich noch keine Programmiererfahrung. Es reicht wohl nicht, die libeay32.dll und die ssleay32.dll in den Programmpfad zu packen. Was muss ich tun?
Zudem scheitert
TFileStream.Create(Ziel, fmCreate), wenn die Quelle nicht existiert, was mir unverständlich ist.
Wie prüfe ich, ob eine Datei auf einem https-Server existiert? Die Funktion
HTTPFileExists funzt nicht. Die Prüfung benötige ich auch in einem anderen Kontext.
Soweit erstmal.
Beste Grüße
Rued
Moderiert von
Th69: Delphi-Tags hinzugefügt
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt