如何在从服务器读取数据时处理ReadTimOut异常?

时间:2011-10-17 13:14:27

标签: java android exception exception-handling

我正在从Amazon S3服务器下载长文件。如果有任何问题,我会将激活记录到我的服务器数据库中。我看到的是大量例外是 java.net.SocketTimeoutException:读取超时

我认为当用户处于糟糕/不良的互联网覆盖范围时会发生这种情况,但我不知道用户是否处于覆盖率差的区域,那么为什么要登录服务器?(这也是通过互联网完成的)。任何人都知道原因吗?

每次发生此异常的行

  

while((numRead = inputStream.read(mBuffer))> = 0)

我如何处理该异常?我在想,当发生异常时,我应该再次尝试通过调用

来考虑时间,例如5次
  

inputStream.read(mBuffer);

     

我的想法是否正确?

     

读取超时后是否发生异常输入流将再次有效使用?

     

将调用inputStream.read(mBuffer);将从最后一个流重新开始恢复?

由于

1 个答案:

答案 0 :(得分:1)

输入流保持有效,超时后缓冲区不包含任何数据。如果你得到很多超时,我会从增加超时时间开始。加倍它。并且它应该至少30-60秒开始,因为你想要所有的数据。