我正在从Amazon S3服务器下载长文件。如果有任何问题,我会将激活记录到我的服务器数据库中。我看到的是大量例外是 java.net.SocketTimeoutException:读取超时
我认为当用户处于糟糕/不良的互联网覆盖范围时会发生这种情况,但我不知道用户是否处于覆盖率差的区域,那么为什么要登录服务器?(这也是通过互联网完成的)。任何人都知道原因吗?
每次发生此异常的行
while((numRead = inputStream.read(mBuffer))> = 0)
我如何处理该异常?我在想,当发生异常时,我应该再次尝试通过调用
来考虑时间,例如5次inputStream.read(mBuffer);
我的想法是否正确?
读取超时后是否发生异常输入流将再次有效使用?
将调用inputStream.read(mBuffer);将从最后一个流重新开始恢复?
由于
答案 0 :(得分:1)
输入流保持有效,超时后缓冲区不包含任何数据。如果你得到很多超时,我会从增加超时时间开始。加倍它。并且它应该至少30-60秒开始,因为你想要所有的数据。