Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi URLDownloadToFile Timeout setzen (https://www.delphipraxis.net/138479-urldownloadtofile-timeout-setzen.html)

DeddyH 11. Aug 2009 09:27


URLDownloadToFile Timeout setzen
 
Moin,

ich suche schon seit 2 Tagen nach einer Möglichkeit, einen Timeout für URLDownloadToFile anzugeben. Ist das wirklich nicht vorgesehen (das kann ich mir fast nicht vorstellen)? Alle Vorschläge, die ich ergooglen konnte, bezogen sich auf eine "Frickellösung" mit Timern o.ä. im OnProgress des Callbacks. Hat vielleicht jemand noch eine andere Idee?

Bernhard Geyer 11. Aug 2009 09:31

Re: URLDownloadToFile Timeout setzen
 
leg es in einen Tread und kill denn Thread falls nach x Sekunden die Datei noch nicht erzeugt wurde.

DeddyH 11. Aug 2009 09:33

Re: URLDownloadToFile Timeout setzen
 
Das wäre eine Möglichkeit, Danke.

Luckie 11. Aug 2009 09:36

Re: URLDownloadToFile Timeout setzen
 
Zitat:

Zitat von DeddyH
Moin,

ich suche schon seit 2 Tagen nach einer Möglichkeit, einen Timeout für URLDownloadToFile anzugeben. Ist das wirklich nicht vorgesehen (das kann ich mir fast nicht vorstellen)? Alle Vorschläge, die ich ergooglen konnte, bezogen sich auf eine "Frickellösung" mit Timern o.ä. im OnProgress des Callbacks. Hat vielleicht jemand noch eine andere Idee?

Was ist daran eine Frickellösung? Beim Start merkst du dir mit GetTickCount die Zeit, das machst du auch im OnProgress Ereignsi der Callback Funktion und dann vergleichst du eben, wie viel Zeit vergangen ist.

himitsu 11. Aug 2009 09:40

Re: URLDownloadToFile Timeout setzen
 
du könntest aber auch auf andere APIs umsteigen, wo soetwas vorgesehn ist


z.B.
Delphi-Quellcode:
hSession := InternetOpen('User', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
InternetSetOption(hSession, INTERNET_OPTION_CONNECT_TIMEOUT,     ...
InternetSetOption(hSession, INTERNET_OPTION_SEND_TIMEOUT,        ...
InternetSetOption(hSession, INTERNET_OPTION_RECEIVE_TIMEOUT,     ...
InternetSetOption(hSession, INTERNET_OPTION_DATA_SEND_TIMEOUT,   ...
InternetSetOption(hSession, INTERNET_OPTION_DATA_RECEIVE_TIMEOUT, ...
InternetSetOption(hSession, INTERNET_OPTION_DISCONNECTED_TIMEOUT, ...
hURL := InternetOpenURL(hSession, PChar(URL), nil, 0, 0, 0);
Try
  ...
    If not InternetReadFile(hURL, @Buffer[1], BufferSize, BufferLength) Then
  ...
Finally
  InternetCloseHandle(hURL);
  InternetCloseHandle(hSession);
End;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 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