AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TNetHTTPRequest: Fehler 12030 beim Herunterladen von mp4-Video-Dateien

TNetHTTPRequest: Fehler 12030 beim Herunterladen von mp4-Video-Dateien

Ein Thema von philipp.hofmann · begonnen am 26. Okt 2021 · letzter Beitrag vom 26. Okt 2021
Antwort Antwort
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
886 Beiträge
 
Delphi 10.4 Sydney
 
#1

TNetHTTPRequest: Fehler 12030 beim Herunterladen von mp4-Video-Dateien

  Alt 26. Okt 2021, 13:28
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:
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
Es spielt dabei keine Rolle, ob das ganze innerhalb eines Threads oder im MainThread ausgeführt wurde.
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;
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
533 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TNetHTTPRequest: Fehler 12030 beim Herunterladen von mp4-Video-Dateien

  Alt 26. Okt 2021, 16:52
Was passiert wenn der gleiche Kunde auf dem gleichen Rechner die Datei via Browser herunterladen will?
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
886 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TNetHTTPRequest: Fehler 12030 beim Herunterladen von mp4-Video-Dateien

  Alt 26. Okt 2021, 21:40
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz