我正在使用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)`
此链接错误是由于(通常在响应的内容长度标头中设置)大于响应中的实际数据。但怎么解决呢???