所以我的应用程序正在与服务器交换请求/响应(没问题),直到互联网连接中断几秒钟,然后回来。然后是这样的代码:
response = (HttpWebResponse)request.GetResponse();
将抛出异常,状态为ReceiveFailure
,ConnectFailure
等KeepAliveFailure
。
现在,如果互联网连接恢复,我能够继续与服务器通信,这一点非常重要,否则我必须从头开始,这将需要很长时间。
互联网恢复后,您将如何恢复这种通信?
目前,我一直在检查与服务器通信的可能性,直到有可能(至少在理论上)。我的代码尝试如下所示:
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
// We have a problem receiving stuff from the server.
// We'll keep on trying for a while
if (ex.Status == WebExceptionStatus.ReceiveFailure ||
ex.Status == WebExceptionStatus.ConnectFailure ||
ex.Status == WebExceptionStatus.KeepAliveFailure)
{
bool stillNoInternet = true;
// keep trying to talk to the server
while (stillNoInternet)
{
try
{
response = (HttpWebResponse)request.GetResponse();
stillNoInternet = false;
}
catch
{
stillNoInternet = true;
}
}
}
}
然而,问题是即使互联网恢复,第二个 try-catch 语句也会不断抛出异常。
我究竟做错了什么?还有其他方法可以解决这个问题吗?
谢谢!