Excel HTTP获取超时

Joh*_*tti 4 excel vba excel-vba

我们有这个小子,只是将数据泵入远程服务器.一切都按预期工作.

前几天,网络服务器上发生了一个持续了大约一个小时的事件.我仍然可以PING服务器,但IIS没有响应.结果,宏只是等待响应.

有关快速通过/失败测试或超时的任何想法?

Sub WebLog(getUser As String, getEvent As String, getValue As String)
    Dim URL As String
    URL = "http://myurl.com/dp.aspx?Task=Log&v1=" + getUser + "&v2=" + getEvent + "&v3=" + getValue
    Dim xml As Object
    Set xml = CreateObject("MSXML2.XMLHTTP")
    xml.Open "GET", URL, False
    xml.Send
End Sub
Run Code Online (Sandbox Code Playgroud)

dre*_*c4s 8

您可能需要查看WinHttp.WinHttpRequest.5.1库,该库允许您timeouts为请求进行设置.

WinHttpRequest对象

你应该.SetTimeouts在之前.Open设置,你设置的四个参数.SetTimeouts是(以毫秒为单位):

Resolve, Connect, Send and Receive
Run Code Online (Sandbox Code Playgroud)

您的示例代码将是(10秒超时):

Sub WebLog(getUser As String, getEvent As String, getValue As String)
    Dim URL As String
    URL = "http://myurl.com/dp.aspx?Task=Log&v1=" + getUser + "&v2=" + getEvent + "&v3=" + getValue
    Dim xml As Object
    Set xml = CreateObject("WinHttp.WinHttpRequest.5.1")
    xml.SetTimeouts 10000, 10000, 10000, 10000
    xml.Open "GET", URL, False
    xml.Send
End Sub
Run Code Online (Sandbox Code Playgroud)