У меня есть стабильная реализация на RestSharp, запрашивающая HTTP WebAPI WebService с тайм-аутом 60 секунд. Фактически эта реализация используется в службе Windows, поэтому этот WS получает много запросов в день.RestSharp Тайм-аут превышен - лучшая реализация
Дело в том, что иногда я получаю сообщение об ошибке (15 в день aprox.) И не знаю, как обращаться с этими ошибками, поэтому у каждого запроса может быть ответ. (На самом деле я думаю о повторном исполнении).
Public Sub UpdateQuery(ByVal query As Request)
Dim client As New RestClient(ConfigurationManager.AppSettings("SERVICE_URL") & query.Query)
Dim request = New RestRequest(ConfigurationManager.AppSettings("SERVICE_URL") & query.Query, Method.PATCH)
Dim response As New RestResponse
request.Timeout = 1000 * ConfigurationManager.AppSettings("RequestTimeOut")
request.AddParameter("application/json", query.Body, ParameterType.RequestBody)
response = client.Execute(request)
If response.ErrorException Is Nothing Then
If response.StatusCode = HttpStatusCode.NoContent Then
query.StatusCode = response.StatusCode
Else
query.StatusCode = response.StatusCode
query.ErrorDescr = JObject.Parse(response.Content).SelectToken("error.message.value")
End If
Else
response = client.Execute(request) 'Retry¿?¿?
If response.ErrorException Is Nothing Then
query.StatusCode = response.StatusCode
If response.StatusCode <> HttpStatusCode.NoContent Then
query.ErrorDescr = JObject.Parse(response.Content).SelectToken("error.message.value")
End If
Else
Throw New Exception("UpdateQuery error:, response.ErrorException)
End If
End If
End Sub
Исключение получил это один (в переводе на Google) -
System.Net.WebException : the waiting time of the operation was exceeded
in System.Net.HttpWebRequest.GetResponse ()
in RestSharp.Http.GetRawResponse (HttpWebRequest request)
in RestSharp.Http.GetResponse (HttpWebRequest request)
Любая идея, было бы полезно. Спасибо заранее.