![]() |
HTTPS-Download, Fehler 12157
Hallo,
mit folgendem Code will ich eine Datei über HTTPS herunterladen. Es geht genau um diese Datei hier. ![]() Nehme ich eine Seite ohne HTTPS, klappt es. Was mache ich denn falsch?
Delphi-Quellcode:
// https://stackoverflow.com/questions/13638778/delphi-downloading-a-file-using-wininet
function DownloadFile(URL: widestring; Path: string): Boolean; const BLOCK_SIZE = 1024; var InetHandle: Pointer; URLHandle: Pointer; FileHandle: Cardinal; BytesRead: Cardinal; DownloadBuffer: Pointer; Buffer: array [1 .. BLOCK_SIZE] of byte; BytesWritten: Cardinal; begin Result := False; InetHandle := InternetOpenW(PWideChar(URL), 0, 0, 0, 0); if not Assigned(InetHandle) then RaiseLastOSError; try InternetConnect ( InetHandle, PChar(URL), INTERNET_DEFAULT_HTTPS_PORT, PChar(''), // User PChar(''), // Pass INTERNET_SERVICE_HTTP, 0, 0 ); // auch nil,nil für User und Pass klappen nicht URLHandle := InternetOpenUrlW(InetHandle, PWideChar(URL), 0, 0, 0, 0); if not Assigned(URLHandle) then RaiseLastOSError; // hier kommt der Fehler try FileHandle := CreateFileW(PWideChar(Path), GENERIC_WRITE, FILE_SHARE_WRITE, 0, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0); if FileHandle = INVALID_HANDLE_VALUE then RaiseLastOSError; try DownloadBuffer := @Buffer; repeat if (not InternetReadFile(URLHandle, DownloadBuffer, BLOCK_SIZE, BytesRead)) or (not WriteFile(FileHandle, DownloadBuffer^, BytesRead, BytesWritten, 0)) then RaiseLastOSError; until BytesRead = 0; Result:= True; finally CloseHandle(FileHandle); end; finally InternetCloseHandle(URLHandle); end; finally InternetCloseHandle(InetHandle); end; end; |
AW: HTTPS-Download, Fehler 12157
Oft hilft bei TLS Problemen eine Server-Analyse, um die unterstützten Protokollversionen zu ermitteln:
![]() Mögliche Ursachen z.B: * IE 6 / Windows XP * Client verwendet SSL 2 oder SSL 3 statt TLS |
AW: HTTPS-Download, Fehler 12157
Hallo,
also mit Indy geht es.
Delphi-Quellcode:
function DownloadFile2(URL: string; Path: string): Boolean;
var URI : TIdURI; IOHandler : TIdSSLIOHandlerSocketOpenSSL; HTTP : TIdHTTP; FileStream: TFileStream; begin URI := TIdURI.Create(URL); //URI.Username := ParamUserName; //URI.Password := ParamPassword; HTTP := TIdHTTP.Create(nil); if URI.Protocol = 'https' then begin IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); //IOHandler.SSLOptions.Method := sslvSSLv3; HTTP.IOHandler := IOHandler; end; FileStream:= TFileStream.Create(Path, fmCreate); HTTP.Get(URI.GetFullURI([ofAuthInfo]), FileStream); FileStream.Free; end; |
AW: HTTPS-Download, Fehler 12157
Zitat:
|
AW: HTTPS-Download, Fehler 12157
Hallo,
Protocols TLS 1.3 No TLS 1.2 Yes TLS 1.1 Yes TLS 1.0 Yes SSL 3 No SSL 2 No For TLS 1.3 tests, we currently support draft version 18. Und was bringt mir das jetzt für meinen WinINet-Code? |
AW: HTTPS-Download, Fehler 12157
Zitat:
Unter "Eigenschaften von Internet" | "Erweitert" kann man alle Protokolle einzeln ein- und ausschalten. Es muss dort ein Häkchen bei TLS 1.2, 1.2 oder 1.0 verwenden stehen. |
AW: HTTPS-Download, Fehler 12157
Hallo,
OK, verstanden. Eigenschaften von Internet / Erweitert finde ich nur im Internet Explorer. Und mit dem Internet Explorer kann ich die Datei ja laden. Wenn es so kompliziert* ist, bleibt es bei Indy ;) *kompliziert = für viele unserer Kunden zu schwierig |
AW: HTTPS-Download, Fehler 12157
Zitat:
|
AW: HTTPS-Download, Fehler 12157
Hallo,
das ist wie es aussieht das gleiche. Die Frage ist aber immer noch, warum der WinINet-Code nicht läuft. |
AW: HTTPS-Download, Fehler 12157
Zitat:
Falls SSL 2 oder SSL 3 aktiviert ist: deaktivieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03: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