![]() |
schneller Online Datei-Check
Guten Nachmittag zusammen... ich versuche schon n paar tage irgendiw nen schnellen check hinzubekommen ob eine datei online existiert oder nicht...
im grunde geht es um eine textdatei die die neueste version beinhaltet für meine automatische updatefunktion. ich habs jetzt mit den indys (TidHTTP) probiert nur kommt da das problem auf, dass er echt lange braucht um zu verstehen, wenn die datei nicht existiert (server down zB). existiert sie, ist alles okay... jedoch will ich den usern meines programms nicht zumuten, knappe 15 - 30 sekunden zu warten bis sich das programm "zeigt". Habs auch schon mit nem Thread probiert und ihn dann im Thread danach suchen lassen, aber irgendwie stoppt das programm dann trotzdem solange, bis TidHTTP die meldung gibt dass datei nicht vorhanden ist. dann habe ich ne funktion gefunden, die erst überprüft ob eine datei online zur verfügung steht, wenn ja, sie dann downloaded oder halt wenn nicht, dann SCHNELLE fehlermeldung... eigentlich perfekt für meine zwecke... hier mal der code: ![]() jedoch bin ich wohl irgendwie nicht dazu in der lage, diese funktion so umzufummeln, dass die textdatei NICHT downgeloaded wird, sondern nur geöffnet bzw. nicht geöffnet wird und dann der text mit der aktuellen version verglichen wird. sicher könnte ich die textdatei downloaden, dann auslesen und dann wieder löschen lassen... finde ich persönlich aber unsauber und umständlich... ich hoffe einer kann mir nen denkanstoß verpassen ich bedank mich schonmal im Voraus für alle antworten... Floddy |
AW: schneller Online Datei-Check
|
AW: schneller Online Datei-Check
Gab's nicht dieses idAntiFreeze zum Draufklicken, damit die Anwendung bei Anfragen nicht mehr einfriert?
|
AW: schneller Online Datei-Check
idAntifreeze funzt nicht wirklich... das hab ich auch schon probiert...
URLCheck liefert mir bei diesem Code:
Delphi-Quellcode:
ein "!" obwohl er mir ein "?" liefern sollte...
if UrlCheck('http://www.bbned.nl/scripts/speedtest/download/file324654mb.bin', true) = 200 then ShowMessage('!') else ShowMessage('?');
probier ich es so:
Delphi-Quellcode:
liefert er mir "?" zurück... kann also nur URLs finden und keine Dateien?
if UrlCheck('http://www.bbned.nl[B]llllllllll[/B]', true) = 200 then ShowMessage('!') else ShowMessage('?');
|
AW: schneller Online Datei-Check
Was für einen Wert liefert denn URLCheck?
Denn es sollte mit Dateien funktionieren. |
AW: schneller Online Datei-Check
Delphi-Quellcode:
function UrlCheck(sUrl: String; bAllowRedirects: Boolean = false): Integer;
begin with TidHTTP.Create(nil) do try try HandleRedirects := bAllowRedirects; Head(sUrl); Result := Response.ResponseCode; errorhandler := Response.ResponseText; finally Free; end; except Result := GetLastError; end; end;
Delphi-Quellcode:
liefert:
if UrlCheck('http://www.bbned.nl/scripts/speedtest/download/file324654mb.bin', true) = 200 then ShowMessage('!' + errorhandler) else ShowMessage('?' + errorhandler);
!HTTP/1.1 200 OK |
AW: schneller Online Datei-Check
Delphi-Quellcode:
:gruebel:
C := UrlCheck('http://www.bbned.nl/scripts/speedtest/download/file324654mb.bin', true);
ShowMessage(IntToStr(C)); [edit] OK, das sollte hoffentlich 200 ausgeben. Zitat:
"!" = Datei existiert. |
AW: schneller Online Datei-Check
200
|
AW: schneller Online Datei-Check
Zitat:
Zumindest kann ich die Adresse ansurfen, ist nur nix in der Datei drin. |
AW: schneller Online Datei-Check
Ach ja, wenn diese Datei nicht existieren sollte,
die Webseite dieses aber selber auswertet und dann keinen korrekten Statuscode liefert, dann gibt es keine Möglichkeit dieses schnell zu prüfen. Abgesehn vom vollständigen Runterladen der Datei und anschließendem Prüfen, ob diese Datei "korrekt" ist, bzw. das enthält, was mann will. |
AW: schneller Online Datei-Check
mir scheint als gäbe es die datei tatsache irgendwie nur leer^^... hab ich nicht drauf geachtet... gut andere URL probiert...
Delphi-Quellcode:
das gibt mir nen 'Read Tiemout' der schon 5 sekunden dauert...
C := UrlCheck('http://google.de/DD.txt', true);
|
AW: schneller Online Datei-Check
Hi Flo,
das Netzwerk benötigt auch ein wenig zum Antworten. Wenn Dir 5 Sekunden zu lang sind - lager es in einen Thread aus. Grüße Klaus |
AW: schneller Online Datei-Check
die funktion um ne datei downloaden zu können kanns ja auch schnell machen...
|
AW: schneller Online Datei-Check
Hab in dem anderem Thread noch eine andere Variante eingetragen, welche bei 404 ohne Exception auskommt.
(aber keine Ahnung, ob sie bei den 1xx- und 3xx-Codes/Fehlern korrekt arbeitet) |
AW: schneller Online Datei-Check
welcher andere Thread?
C := UrlCheck('http://www.bbned.nl/scripts/speedtest/download/file324654mb.bin', true); ShowMessage(IntToStr(C)); MUSS "!" zurück geben denn die richtige URL ist: ![]() und nicht ![]() aber wenn man den unteren link öffnet, dann kommt ne leere datei... war ne doofe datei zum testen... ![]() ![]() |
AW: schneller Online Datei-Check
In dem?
![]() Deren Downloadscript ist einfach nur Schott. Es gibt immer 200 aus, egal ob die gewünschte Datei existiert oder nicht. |
AW: schneller Online Datei-Check
ahh okay... hatte "einzelnen Beitrag" immer nur deshalb hatte ich deinen Post nicht gesehn :X
|
AW: schneller Online Datei-Check
Liste der Anhänge anzeigen (Anzahl: 1)
Bei einer HTTP-Anfrage mit HEAD bekommt man übrigens auch noch Grösse der Resource (Dateigrösse) und das Datum.
Eine Anfrage auf diese URL ![]() liefert z.B.:
Code:
PS: im Anhang ein kleines Testprogramm, mit dem man diese Infos holen kann
Via: 1.1 MyProxy
Connection: Keep-Alive Proxy-Connection: Keep-Alive Content-Length: 9961 < ****** Expires: Sat, 12 Jun 2010 10:45:46 GMT Date: Wed, 25 Aug 2010 16:39:58 GMT Content-Type: image/gif ETag: "1096bba-26e9-75092245cea80" Server: Apache/2.2.9 (Debian) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8g SVN/1.6.9 Last-Modified: Sat, 05 Jun 2010 10:45:46 GMT < ****** Cache-Control: max-age=290304000, public |
AW: schneller Online Datei-Check
@shmia:
aber nur wenn das mitgesehndet wird. Versuch mal die Dateigröße der ![]() |
AW: schneller Online Datei-Check
Zitat:
|
AW: schneller Online Datei-Check
@Luckie:
Der Code war von dort ![]() Und ich war schneller, siehe letzter Post da drüben. :tongue: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 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