让 WinHttp.WaitForResponse() 超时等待超过 30 秒

供新手入门和老手参考的教程和相关资料,包括中文帮助
tmplinshi
Posts: 1268
Joined: 01 Oct 2013, 14:57

让 WinHttp.WaitForResponse() 超时等待超过 30 秒

08 Aug 2015, 23:18

默认情况下,WinHttp.WaitForResponse() 最多只能等待 30 秒,也就是说...
  • WinHttp.WaitForResponse(-1) ; 最多等待 30 秒,而不是无限期等待。
  • WinHttp.WaitForResponse(60) ; 最多等待 30 秒,而不是 60 秒。
要让 WinHttp.WaitForResponse() 超时等待超过 30 秒,需要先调用 WinHttp.SetTimeouts(解析超时, 连接超时, 发送超时, [color=#FF0000]接收超时[/color])

参数的超时单位是毫秒。比如把超时等待修改为 120 秒:
WinHttp.SetTimeouts(0, 60000, 30000, [color=#FF0000]120000[/color])
前面三个值 0, 60000, 30000 是默认值。更多详细说明见 IWinHttpRequest::SetTimeouts method

Code: Select all

whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", URL, true)
whr.SetTimeouts(0, 60000, 30000, 120000)
whr.Send()
whr.WaitForResponse(90)

Return to “教程资料”

Who is online

Users browsing this forum: No registered users and 1 guest