我正在制作一个 vb.net 应用程序,它每 35 秒发出一次 get 请求,第一个和第二个请求正常发生并且用时不到 1 秒,但是从第三个请求开始没有返回并且无论设置的超时如何都会达到超时.
每35秒调用一次的sub如下:
Sub Eventos(ByVal token)
Dim request As HttpWebRequest
Dim response As HttpWebResponse
Dim responseString As String
Dim jsonObject As JObject
Dim EventosArray As JArray
ServicePointManager.ServerCertificateValidationCallback = Function() True
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
request = CType(WebRequest.Create("https://merchant-api.ifood.com.br/order/v1.0/events:polling"), HttpWebRequest)
request.Headers.Add("Authorization", "Bearer " & token)
request.Method = "GET"
request.ContentType = "application/json"
request.Timeout = 60000
response = CType(request.GetResponse(), HttpWebResponse)
responseString = New StreamReader(response.GetResponseStream()).ReadToEnd()
If (responseString <> "") Then
jsonObject = JObject.Parse("{events:" & responseString & "}")
EventosArray = jsonObject("events")
For Each evento As JObject In EventosArray
If (evento("code") = "PLC") Then
Module1.orderId = evento("orderId")
Module1.ApagaEventos(evento.ToString.Replace(vbCr, "").Replace(vbLf, ""), token)
Else
Module1.ApagaEventos(evento.ToString.Replace(vbCr, "").Replace(vbLf, ""), token)
End If
Next
Console.WriteLine(jsonObject)
End If
End Sub
我已经用 1 分钟到 10 分钟之间的超时测试了它,没有任何变化。我已经检查了服务器请求限制,但是每分钟超过 5 个,所以这应该不是问题。 我在使用 Windows 7 和 10 的不同设备上对其进行了测试,所有设备的行为都相同。 我想知道为什么会这样以及如何解决这个问题。