Уважаемые форумчане! Имеется система : 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 сек, если ответа так и не поступило то необходимо повторить запрос .