Erst mal Danke für das Script. Damit werde ich mich aber später beschäftigen. Aktuell habe ich erst 18 verschiedene Zugangsdaten, da war es schneller mit suchen und ersetzen erledigt.
Ich habe aber noch ein Problem, wo ich nicht so richtig weiss, wie ich das angehen soll. Weiter oben habe ja schon mal beschrieben, das die Website sich bei den unterschiedlichen Anmeldung sehr oft komisch verhält. Aktuell habe ich meine Anmeldedaten in der INI Datei so sortiert, dass der Account, mit den wenigsten Teilnehmern (das sind die Werte, die ich nach erfolgreicher Anmeldung auslese) vorne stehen. Wir haben hier grob eine Spannweite von 200 bis 1400 Teilnehmer.
Leider scheint es hier keine saubere Logik zu geben. Ich kann ja hier auch nur von Hand mich anmelden und mit der Stoppuhr mal die Loginzeit protokollieren. Da kann es aber durchaus vorkommen, das ein Account mit 350 Teilnehmer eine Loginzeit von 70 Sekunden hat, der Account mit 1300 Teilnehmer aber nur 50 Sekunden.
Aktuell habe ich ja folgende Timeout Werte gesetzt
$hSession = _WinHttpOpen('Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0')
;host
$sServerName = 'leanv.zks-abfall.de'
$hConnect = _WinHttpConnect($hSession, $sServerName)
_WinHttpSetTimeouts($hConnect, 10000, 60000, 120000, 120000)
So richtig ziehen, tun die aber nicht. Das merke ich daher, das mir mein Script irgendwann um die Ohren fliegt, weil der Login noch nicht durch ist, es aber bereits die weiteren Informationen erwartet.
Wie geht man den bei sowas vernünftig vor?
Nachtrag:
Habe jetzt mal die Zeiten für den Login Vorgang gemessen
Local $hTimer = TimerInit() ; Beginnt den Timer speichert das Handle in einer Variable.
;(3)Benutzername und Passwort senden (POST)
ConsoleWrite("Benutername in der ZKS_Abfrage ist: " & $sBenutzerName & " mit dem Passwort: " & $sPasswort & @CRLF)
$sPOST = 'action=login&uname=' & $sBenutzerName & '&password=' & $sPasswort & '&login=login'
ConsoleWrite("$sPOST ist: " & $sPOST & @CRLF)
$sPaket = _WinHttpSimpleSSLRequest($hConnect, 'POST', '/LaenderEANV_Web/registrierung', 'https://leanv.zks-abfall.de/LaenderEANV_Web/registrierung?action=displaylogin', $sPOST)
_FileWrite($sPaket) ; schreibe eine Kontroll HTML Datei
Local $fDiff = TimerDiff($hTimer) ; Findet den Zeitunterschied zum vorherigen Aufruf von TimerInit. Die Variable wird im TimerInit Handle gespeichert und als Handle an TimerDiff übergeben.
ConsoleWrite("Zeitunterschied beim Logon: " & $fDiff & " Millisekunden" & @CRLF)
Die ersten 11 Anmeldung lagen im Schnitt zwischen 2500 und 5500 Millisekunden. Alles gut soweit. Dann kommt ein Ausreiser mit 32000 Millisekunden. Wenn ich mir dann die HTML Datei anschaue, die er geschrieben hat, steht da nur ein "0" drin. Bei den erfolgreichen HTMLs da dann sowas wie Angemeldet: FRITZ&MA815, Letzte Anmeldung: 28.12.2018, 08:51 Uhr
Was kann ich im obigen Code machen, das er so lange wartet, bis die Anmeldung wirklich vollzogen ist?