Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
XMLHTTPRequest timeout асинхронного запроса, необходимо сменить тип запроса с синхронного на асинхронный и добавить таймаут операции
 
Уважаемые форумчане!
Имеется система : Win 7 - 64 , Excel 2007
Имеется код:
Код
Function SendRequest(Url, AppKey, Session, Data) As String
    On Error GoTo ErrorHandler:
    Dim xhr: Set xhr = CreateObject("MSXML2.XMLHTTP" )

    With xhr
        .Open "POST", Url & "/", False
        .setRequestHeader "X-Application", AppKey
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "Accept", "application/json"
    End With
    
    If Session <> "" Then
        xhr.setRequestHeader "X-Authentication", Session
    End If

    xhr.send Data
    
    Dim timing
    timing = 0
     While xhr.readyState <> 4
        xhr.waitForResponse 1
        timing = timing + 1
        Cells(19, 1).value = timing
    Wend
   
    SendRequest = xhr.responseText
    
    If xhr.Status <> 200 Then
        Err.Raise vbObjectError + 1000, "Util.SendRequest", "The call  was unsuccessful. Status code: " & xhr.Status & " " & xhr.statusText & ". Response was: " & xhr.responseText
    End If
 
    Set xhr = Nothing
    Exit Function
ErrorHandler:
    SendRequest = ""
End Function
        При использовании данного синхронного запроса возникает зависание excel если: разорвалось интернет соединение либо сервер не отвечает на запрос , что категорически неприемлимо для работы программы. Таймаута для синхронного запроса насколько я понял из интернет(я программист-любитель ,не пеняйте)) нет , при разрыве соединения он правда секунд 30(но это редко,да и слишком много необходимо максимум секунд 5) . Помогите , пожалуйста, сделать асинхронный запрос, с таймаутом в 5 сек, если ответа так и не поступило то необходимо повторить запрос .
Изменено: aluminii - 01.01.2015 06:26:37
Страницы: 1
Наверх