Странный поток управления в AutoHotKey при отправке HTTP-запроса GET - PullRequest
0 голосов
/ 04 августа 2020

У меня есть следующий код:

    While (true)
    {
        try
        {
            Log("sending GET request")
            whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
            whr.SetTimeouts(0, 30000, 30000, 120000)
            whr.Open("GET", "https://myurl.com", false)
            whr.Send()
            Log("sent GET request")
            response := whr.ResponseText
            ; ...
        }
        catch ex
        {
            Log("caught error")
            Log("`n`nError in " ex.What ", message " ex.Message ", line " ex.Line ", extra " ex.Extra)
            Sleep 60000
        }
        Log("while loop repeats")
    }

Насколько я понимаю, журнал должен содержать либо sent GET request, либо caught error, прежде чем while loop repeats объявит о следующей итерации while l oop.

Однако мой файл журнала выглядит так:

20200801-225311 sending GET request
20200801-225412 while loop repeats
20200801-225412 sending GET request
20200801-225513 while loop repeats
20200801-225513 sending GET request
20200801-225615 while loop repeats
20200801-225615 sending GET request
20200801-225716 while loop repeats
20200801-225716 sending GET request
20200801-225817 while loop repeats
20200801-225817 sending GET request
20200801-225918 while loop repeats
20200801-225918 sending GET request
20200801-230020 while loop repeats
20200801-230020 sending GET request
20200801-230121 while loop repeats
20200801-230121 sending GET request
20200801-230222 while loop repeats
20200801-230222 sending GET request
20200801-230324 while loop repeats
20200801-230324 sending GET request
20200801-230425 while loop repeats
20200801-230425 sending GET request
20200801-230526 while loop repeats
20200801-230526 sending GET request
20200801-230628 while loop repeats
20200801-230628 sending GET request
20200801-230729 while loop repeats
20200801-230729 sending GET request
20200801-230730 sent GET request
...

Как видите, запрос GET запускается много раз, и почти каждый раз он не завершается, и в журнале нет ни sent GET request, ни caught error.

Какой аспект потока управления AutoHotKey мне не хватает? Как можно выполнить код до while loop repeats, не доходя до sent GET request или caught error?

...