![]() |
TNetHTTPRequest: Fehler 12030 beim Herunterladen von mp4-Video-Dateien
Hi,
in meiner Anwendung werden relativ viele Dateien durch den User heruntergeladen. Das meiste sind mp3-Musik-Dateien, ein Teil kleinere XML-Dateien. Alles problemlos. Ein Teil der Dateien sind relativ große Video-Dateien (aber kleiner <2 GB). Bei den meisten Kunden funktioniert dies problemlos. Aber bei einem Kunden werden diese Downloads mit dem folgenden Fehler beendet:
Code:
Es spielt dabei keine Rolle, ob das ganze innerhalb eines Threads oder im MainThread ausgeführt wurde.
20:36:36.711 10664-Info Download: https://webdav.hidrive.strato.com/users/ictrainerdownloader/downloads/media/freeMedia/gpx/Climb/Mallorca - Monestir de Lluc (Pollenca).mp4
20:36:36.755 10664-Info Create file to download E:\icTrainer\downloads\media\freeMedia\gpx\Climb\Mallorca - Monestir de Lluc (Pollenca).mp4.tmp 1 of 1 20:36:36.886 10664-Info Download file E:\icTrainer\downloads\media\freeMedia\gpx\Climb\Mallorca - Monestir de Lluc (Pollenca).mp4 1 of 1 20:36:50.218 4260-Info Mallorca - Monestir de Lluc (181,7-531,1 MB 34% -> 23.6MB/s) 20:37:31.204 4260-Info Error during download: Fehler beim Lesen der Daten: (12030) Die Serververbindung wurde aufgrund eines Fehlers beendet Was kann man hier noch ausprobieren?
Delphi-Quellcode:
var
Http: TNetHTTPClient; httpRequest: TNetHTTPRequest; begin HttpClient:=TNetHTTPClient.create(nil); HttpClient.OnAuthEvent:=NetHTTPClientAuthEvent; HttpClient.OnReceiveData:=NetHTTPClientReceiveData; HttpClient.OnRequestError:=NetHTTPClientRequestError; HttpClient.ConnectionTimeout:=180.000;//3 min HttpClient.ResponseTimeout:=1800000;//30 min for i:=0 to list.count - 1 do begin httpRequest:=TNetHTTPRequest.create(nil); try httpRequest.Client:=HttpClient; httpRequest.Asynchronous:=False; HttpRequest.ConnectionTimeout:=180000;//3 min HttpRequest.ResponseTimeout:=1800000;//30 min ms:=TFileStream.create(list[i].localFilename + '.tmp', fmCreate or fmOpenReadWrite); try try httpRequestHasError:=false; httpRequest.get(StringReplace(StringReplace(StringReplace(list[i].remoteFilename, ' ', '%20', [rfReplaceAll]), '´', '%C2%B4', [rfReplaceAll]), '`', '%60', [rfReplaceAll]), ms); if (httpRequestHasError) then raise Exception.Create(httpRequestHasErrorText); except on E: System.SysUtils.Exception do begin //retry end; end; finally ms.Free; end; finally httpRequest.Free(); end; end; Http.Free(); end; procedure NetHTTPClientRequestError(const Sender: TObject; const AError: String); begin mlog.info('Error during download: ' + AError); httpRequestHasErrorText:='Error during download: ' + AError; httpRequestHasError:=true; end; procedure NetHTTPClientAuthEvent(const Sender: TObject; AnAuthTarget: TAuthTargetType; const ARealm, AURL: string; var AUserName, APassword: string; var AbortAuth: Boolean; var Persistence: TAuthPersistenceType); begin AUserName:='xxx'; APassword:='yyy'; end; procedure TicTrainerF.NetHTTPClientReceiveData(const Sender: TObject; AContentLength, AReadCount: Int64; var Abort: Boolean); begin end; |
AW: TNetHTTPRequest: Fehler 12030 beim Herunterladen von mp4-Video-Dateien
Was passiert wenn der gleiche Kunde auf dem gleichen Rechner die Datei via Browser herunterladen will?
|
AW: TNetHTTPRequest: Fehler 12030 beim Herunterladen von mp4-Video-Dateien
Muss ich noch ausprobieren, ist etwas komplizierter, weil der Download mit User-Auth passiert und
ich mir anschauen muss, ob ich Strato-HiDrive auch so bedienen kann, dass der User ein reiner Leseuser ist und ich mit einem zweiten User schreiben kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 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