0

我正在下载一个文件,然后使用以下代码将其写入 sdcard:

 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 分钟。如果我在下载过程中取出网线,那么它似乎永远停留在 while 循环中。该代码在 try catch 块中,但我没有得到任何异常。拔下网络电缆时,无论如何要摆脱那个while循环。提前致谢。

4

1 回答 1

1

您应该能够通过设置超时来解决这个问题HttpClient- 套接字保持打开状态,以防服务器响应延迟。你可以简单地告诉它不要等那么久。在此处查看超时选项:

如何在 Java 中为 Android 设置 HttpResponse 超时

于 2015-02-12T15:14:41.990 回答