InetGet sonderbarer "Fehler"

  • Hi!

    Ich möchte ein Programm schreiben, dass denn Onlinestatus einer Datei überprüft. zB ne Textdatei.

    $online = InetGet("http://foo.fo.ohost.de/web/bar.txt", "foobar.txt", 0, 0)

    if $online = 1 then
    MsgBox(0, "OnlineStatus:", "ONLINE")
    else
    msgbox(0, "OnlineStatus:", OFFLINE")
    endif

    wenn ich jetzt die Textdatei bar.txt hochlade, Rechte setze auf 777 und sie dann mit FireFox anschaue, sehe ich sofort den Inhalt von bar.txt. Dann findet das Programm die Datei und lädt sie ordnungsgemäß runter und gibt die Nachricht. Wenn ich jetzt bar.txt vom Webserver lösche, dann sollte eigentlich $online = 0 sein (da failure 0 returnt) und dementsprechend sollte auch die MsgBox OFFLINE kommen. Stattdessen wird gesagt, die Datei sei online. Darüber hinaus wird eine bar.txt runtergeladen, die den Quelltext der Error 404 Seite enthält, die aufkommt, wenn ich http://foo.fo.ohost.de/web/bar.txt aufrufe und bar.txt nicht existiert - Objekt nicht gefunden.

    Verzweiflung ?! ?(

  • problem ganz einfach gelößt....zunächst im quellcode "geschaut" ob "Seite nicht gefunden" drinn vorkommt und das wars schon fast....wenn das nicht vorkommt...download+datei vorhanden....andernfalls datei offline...

    Spoiler anzeigen
    [autoit]

    #include <INet.au3>
    $source = _INetGetSource ("http://example.ex.ohost.de/bla.txt")
    If (Not @error) And (Not (StringInStr($source,"Seite nicht gefunden!",1)>1)) Then
    InetGet("http://emaple.ex.ohost.de/bla.txt",@ScriptDir&"\ble.txt")
    MsgBox(64,"Datei ONLINE","Datei ONLINE!")
    Else
    If Not @error Then
    MsgBox(16,"Datei OFFLINE","Datei OFFLINE!")
    Else
    MsgBox(16,"Runtime Error.","Es ist ein Fehler in _INetGetSource aufgetreten."&@CRLF&"Der Fehlercode lautet:"&@error)
    EndIf
    EndIf

    [/autoit]