![]() |
Datei download mit dem Compact Framework
Ich habe folgenden Code ersonnen, der grundsätzlich zwar funktioniert aber bei mehrfachem Aufruf einfach stehen bleibt. Es klappt 10 bis 12 mal in kurzer Folge und dann ist Schluß. Keine Exception, kein Timeout, keine Reaktion. Hab ne Erfolgsquote von etwa 93% ausgerechnet. Das reicht aber nicht.
Bin auf .Net nicht jetzt so fit. Mache ich vielleicht irgendwelche Kardinalfehler?
Delphi-Quellcode:
Gruß,
method MainForm.DownloadFile(RemoteFile: String; LocalFile: String): Cardinal;
var BytesProcessed: Cardinal; RemoteStream: Stream; LocalStream: Stream; Response: WebResponse; Request: WebRequest; Buffer: Array of Byte; BytesRead: Cardinal; begin try try Request := HTTPWebRequest.Create('http://'+FURL+RemoteFile); if Assigned(Request) then begin Request.Timeout := 60*1000; Request.Proxy:=nil; Response := Request.GetResponse(); // hier bleibt er einfach stehen... if Assigned(Response) then begin RemoteStream := Response.GetResponseStream(); LocalStream := File.Create(LocalFile); Buffer := new Byte[1024]; repeat BytesRead := RemoteStream.Read(Buffer, 0, Buffer.Length); LocalStream.Write(Buffer, 0, BytesRead); inc(BytesProcessed, BytesRead); until BytesRead = 0; end; end; except WriteToLog('Ähm... shit...'); end; finally if Assigned(RemoteStream) then begin RemoteStream.Flush; RemoteStream.Close; RemoteStream.Dispose; end; if Assigned(LocalStream) then begin LocalStream.Flush; LocalStream.Close; LocalStream.Dispose; end; if Assigned(Response) then Response.Close(); LocalStream:=nil; RemoteStream:=nil; Response:=nil; Request:=nil; end; Result:=BytesProcessed; end; Toni |
AW: Datei download mit dem Compact Framework
Könnte es am Server liegen (Überlast, oder Download-Quota erreicht)?
Um sicher zu gehen kann man einen kleinen Testserver im eigenen Netz verwenden. Apache, oder IIS Express, oder zur Not auch Indy TIdHTTPServer. |
AW: Datei download mit dem Compact Framework
Der Server steht bei uns in der Firma und hat sonst ansich keine anderen Aufgaben. Reboote ich den Client, der ja hängt dann, gehts wieder ein paar mal.
Aber ich könnt ja mal ein paar Downloads aus dem Netz testen. Gute Idee. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 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