Erro no AutoHotKey: TimeOut não está sendo respeitado ao utilizar o WinHTTPRequest5.1 (COM Object)

Ao tentar utilizar a biblioteca DLL WinHTTPRequest, mesmo definido explicitamente o TimeOut ele não é respeitado.

Com a mudança de SO, o AutoHotKey não está conseguindo trabalhar de forma correta com esta biblioteca. Inclusive, a equipe de desenvolvimento passou a substituí-la pela Biblioteca Msxml2.XMLHTTP

Se o seu código assíncrono era assim:

WebObj := ComObjCreate("WinHttp.WinHttpRequest.5.1")
WebObj.Open("GET", "http://127.0.0.1/", true)
WebObj.Send()
WebObj.WaitForResponse()
xml := WebObj.ResponseText

Ou seu código síncrono era assim:

WebObj := ComObjCreate("WinHttp.WinHttpRequest.5.1")
WebObj.SetTimeouts(0, 30000, 30000, 120000)
WebObj.Open("GET", "http://127.0.0.1/", false)
WebObj.Send()
WebObj.WaitForResponse()
xml := WebObj.ResponseText

O Timeout não está mais funcionando e você deve estar recebendo as mensagem de erro “0x80072EE2” ou “0x8000000A” – The data necessary to complete this operation is not yet available.

Então substitua-o por:

WebObj := ComObjCreate("Msxml2.XMLHTTP")
WebObj.open("GET", "http://127.0.0.1/", false)
WebObj.send()
xml := WebObj.ResponseText

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *