这可能是一个愚蠢的问题,我只是遗漏了一些显而易见的东西。我在处理网络错误等方面做了很多研究,但我似乎找不到为什么会发生这种情况的答案。
基本上,我从中调用的服务器发送json并返回,但在请求上存在间歇性问题-即502 BadGateway-没有其他问题。当我说间歇性时,我强调这一点,因为它可以在5小时内完美地处理200个请求,然后抛出502,但也可能在第一个请求时发生。很难预测。另外,需要注意的是,我没有访问服务器的权限,这是配置或类似的东西。完全远程。
在开发环境中,如果我没有收到它成功处理的502,我可以继续处理异常,程序继续运行,并在下一个请求时使用相同的请求返回到同一个服务器。然而,独立于开发平台,我会遇到一个没有异常数据的硬崩溃。
我尝试过移动try/catch,将问题调用与其他代码分离,将其组合等等,我总是收到相同的问题。
现在已经很晚了,我可能只是没有正确处理它,所以感谢任何指导。今晚我拒绝放弃这件事——一个星期以来,我一直是我的眼中钉。如果我只是一个擦洗者,会看到新鲜的眼睛,嘲笑我,叫我出来。
提前谢谢
ps.异常正在getResponse()处发出
try
{
using (HttpWebResponse inboundResponse = (HttpWebResponse)outboundRequest.GetResponse()) //exception here for 502
using (StreamReader stream = new StreamReader(inboundResponse.GetResponseStream()))
using (JsonTextReader reader = new JsonTextReader(stream))
{
List<T> outputData = new List<T>();
while (reader.Read())
{
JsonSerializer serializer = new JsonSerializer();
var tempData = serializer.Deserialize<T>(reader);
outputData.Add(tempData);
}
inboundResponse.Close();
return outputData;
}
}
catch (WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError)
{
UIController.addSystemMessageToChat("Protocol Error");
switch(((HttpWebResponse)e.Response).StatusCode)
{
case HttpStatusCode.BadGateway:
UIController.addSystemMessageToChat("Resending Response");
//process exception
default:
throw;
}
}
}