【问题标题】:Timing out a function/command使函数/命令超时
【发布时间】:2012-03-14 22:00:26
【问题描述】:

我在下面找到了一小段代码并对其进行了更改以供我使用,唯一的问题是,如果网站没有返回失败或成功,则代码永远不会结束。 (如果网站挂起,则为 IE)

有没有办法在“HttpRequest.send”命令之后设置超时。因此,如果 30 秒后没有响应,它会将其标记为失败并继续前进?

     Set HttpRequest = CreateObject("Msxml2.XMLHTTP") 
   HttpRequest.open "HEAD", "http://example.com/", False 
   On Error Resume Next 
   HttpRequest.send 
   If Err.Number <> 0 Then 
     WScript.Echo "Error : " & Err.Number & ": " & Err.Description 
   Else 
     WScript.Echo "HTTP status: " & HttpRequest.status & " " _ 
      & HttpRequest.statusText 
   End If 

干杯

哦,这是 VBA

亚伦

【问题讨论】:

标签: vba error-handling timeout xmlhttprequest


【解决方案1】:

切换到"Msxml2.ServerXMLHTTP.3.0"然后可以设置多个条件的超时时间; http://msdn.microsoft.com/en-us/library/windows/desktop/ms760403(v=vs.85).aspx

【讨论】:

  • 我在尝试这个方法时无法创建活动 x 对象。
  • 这可能是因为我正在运行 64 位办公室吗?或者你能解释为什么我不能让它工作吗?
  • 现在我遇到了代理设置问题。即我需要使用与在 IE 中运行的代理服务器相同的代理服务器。使用 Msxml2.XMLHTTP 但不能使用“服务器”?
  • 查看 proxycfg /.setproxy - stackoverflow.com/questions/1041886/…
  • 无法在我需要的桌面上运行它,安全限制:) 哈哈。我不能使用已定义的代理,因为它会在 IE 中自动检测到,并且在所有设备上都会有所不同。 Msxml2.XMLHTTP 没有超时设置似乎很疯狂。
猜你喜欢
  • 2021-09-06
  • 2012-02-07
  • 2012-07-11
  • 2013-04-03
  • 2013-09-30
  • 2019-12-06
  • 2020-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多