超过 RestSharp 超时 - 最佳实施
RestSharp Timeout exceeded - best implementation
我在 RestSharp 上有一些稳定的实现来查询超时为 60 秒的 HTTP WebAPI WebService。实际上,此实现用于 Windows 服务,因此此 WS 每天接收大量请求。
问题是有时我会收到错误消息(大约每天 15 次)并且不知道如何处理此错误以便所有请求都能得到答复。 (实际上我正在考虑重试执行)。
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)
任何想法都会有所帮助。非常感谢。
显然缺少 Maxlength。
我在 RestSharp 上有一些稳定的实现来查询超时为 60 秒的 HTTP WebAPI WebService。实际上,此实现用于 Windows 服务,因此此 WS 每天接收大量请求。
问题是有时我会收到错误消息(大约每天 15 次)并且不知道如何处理此错误以便所有请求都能得到答复。 (实际上我正在考虑重试执行)。
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)
任何想法都会有所帮助。非常感谢。
显然缺少 Maxlength。