httpget in VBS refresh
Guten Tag
ich habe folgendes script um eine datei in eine Variable (strdateivar) zu speichern:
_________________________________________
Do
strdateivar = "anfangs_nicht_vorhanden"
strdateivar = HTTPGET("http://web610203.rex106.flatbooster.net/script/flag.flag")
msgbox strdateivar
Loop
function HTTPGET(strURL)
Dim strResult
Dim Http
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET", strURL , False
Http.send
strResult = Http.ResponseText
HTTPGET = strResult
End function
____________________________________________
Die Datei ist nur eine flagdatei namens "flag.flag" also ist die variable "strdateivar" leer. ist die datei nicht vorhanden wird der html code des 404 errors in die variable geschrieben.
jetzt startet eine schleife: falls die datei am anfang vorhanden ist wird die Variable auf leer gesetzt.
wenn ich während der laufzeit die datei "flag.flag" lösche (sprich: die datei nichmehr da ist) erkennt das der HTTPGET-befehl nicht, weil er noch denkt, dass die datei vorhanden ist und setzt die variable wieder gleich leer, anstatt, dass es einen 404 error zurückgibt.
bedeutet: ich brauche eine funktion die mein HTTPGET refreshed.
ich hoffe, ihr könnt mir folgen.
wäre cool wenn jemand da etwas wüsste.
vielen dank schonmal
mfg
manwe144
Antwort schreiben
Antwort 1 von onifer vom 19.07.2019, 21:06 Options
ich kapier kleider nur die hälfte von dem, was du schreibst. hört sich für mich nach einem cacheproblem an. probier mal den server folgende zwei http-responseheader senden zu lassen:
Cache-Control: no-cache
Pragma: no-cache
somit sollte das cachen dieser datei grundsätzlich unterbleiben.
alternativ dazu könntest du auch in den internetoptionen "bei jedem zugriff neuere version suchen" auswählen, aber das würde sich dann auch auf deinen ie auswirken.
Antwort 2 von manwe144 vom 19.07.2019, 21:11 Options
Hm, jo das wäre richtig, wenn das script im browser starten würde.
tut mir leid. ich habe vergessen zu erwähnen, dass das script als. *.vbs datei bei mir lokal auf dem pc liegt.
und die beiden befehle sind wohl für html seiten, wenn ich das richtig sehe, oder?
Cache-Control: no-cache
Pragma: no-cache
d.h. ich brauch wohl einen befehl dafür.
mfg
manwe144
ps:vielen dank schonmal
Antwort 3 von onifer vom 19.07.2019, 21:19 Options
Zitat:
und die beiden befehle sind wohl für html seiten, wenn ich das richtig sehe, oder?
nein, das siehst du falsch! es sind
http-header, keine html-metaangaben.
Antwort 4 von onifer vom 19.07.2019, 21:46 Options
Antwort 5 von manwe144 vom 20.07.2019, 12:17 Options
zu dem http-header: wo müsste ich das dann eintragen? in die flag datei?
zum query: du meinst eine variable (zahl) erstellen die pro schleife immer eins hochzählt und dann als pfad folgendes angeben ".../flag.falg?random_query=zahl
oder macht das der "random" im pfad automatisch?
mfg
manwe144
Antwort 6 von onifer vom 20.07.2019, 13:20 Options
Zitat:
zu dem http-header: wo müsste ich das dann eintragen?
entweder beim
apache oder, falls du die datei durch ein serverskript erzeugst, kannst du diese header auch mit perl,
php oder python, ruby (wahrscheinlich, kenne letztere beiden nicht persönlich) ausgeben. überprüfen kannst du die response-header z.b. mit dem
websniffer.
Zitat:
oder macht das der "random" im pfad automatisch?
nein, "random" ist einfach nur ein erfundener variablenname. normalerweise brauchst du nicht einmal ein variablen-wert-paar. es reicht eine zahl.
z.b.
http ../flag.flag?1
http ../flag.flag?2
http ../flag.flag?3
http ../flag.flag?4
der client muss davon ausgehen, dass eine adresse mit unterschiedlichen queries aufgerufen, verschiedene seiten/dateien als antwort ergibt. deswegen darf er nicht auf den cache zurückgreifen.
Antwort 7 von manwe144 vom 20.07.2019, 15:52 Options
OK. hat super funktioniert!!!
vielen vielen dank!