【发布时间】:2016-01-08 14:14:25
【问题描述】:
我正在使用 AsyncTask 下载音频文件。文件正在高速互联网(如 wifi)上下载,但应用程序在低速互联网(如移动数据)上的流结束时出现错误。 我的下载文件代码是:
`URLConnection conexion = urle.openConnection();
conexion.connect();
InputStream input = new BufferedInputStream(conexion.getInputStream());
totalSize = conexion.getContentLength();
OutputStream output = new FileOutputStream(st);
byte data[] = new byte[1024];
while ((count = input.read(data)) != -1)
{
output.write(data, 0, count);
downloadedSize += count;
}
output.flush();
output.close();
input.close();`
以下异常即将到来:
`java.net.ProtocolException: unexpected end of stream
at com.android.okhttp.internal.http.HttpConnection$FixedLengthSink.close(HttpConnection.java:326)
at com.android.okio.RealBufferedSink.close(RealBufferedSink.java:174)
at com.android.okio.RealBufferedSink$1.close(RealBufferedSink.java:142)`
从此链接错误是由于(通常设置在响应的内容长度标头中)大于响应中的实际数据。但是怎么解决???
【问题讨论】:
标签: java android android-asynctask