我正在下载文件,然后使用以下代码将其写入SD卡:
HttpResponse response = httpClient.execute(request);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
File file = new File(Environment.getExternalStorageDirectory()+"/MyProject/data");
FileOutputStream fos = new FileOutputStream(file);
int inByte;
while((inByte = is.read()) != -1){
fos.write(inByte);
System.out.println("in while loop inByte: "+inByte);
}
fos.close();
is.close();
一切都很好。通常下载文件需要2分钟。如果我在下载过程中取出网线,那么它似乎永远留在循环中。该代码在try catch块中,但我没有任何异常。无论如何,当拔掉网络电缆时,有没有离开那个循环。提前谢谢。
答案 0 :(得分:1)
您应该能够通过在HttpClient
上设置超时来解决此问题 - 如果服务器在响应中有延迟,则套接字保持打开状态。你可以简单地告诉它不要等待这么久。请参阅此处的超时选项: