当我尝试下载zip文件时,getContentLength返回-1

时间:2015-05-28 08:08:21

标签: android urlconnection

我尝试从服务器下载zip文件并显示progressBar,但我得到conexion.getContentLength()=-1。这就是为什么我无法显示进度对话框,下载工作正常。我的代码如下:

  URLConnection conection = fileUrl.openConnection();
  conection.connect();
  int lenghtOfFile = conection.getContentLength();

2 个答案:

答案 0 :(得分:3)

尝试HttpURLConnection代替URLConnection并设置setChunkedStreamingMode(100);

HttpURLConnection urlConnection = (HttpURLConnection) fileUrl.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.setChunkedStreamingMode(100);
urlConnection.connect();
int lenghtOfFile = urlConnection.getContentLength();

答案 1 :(得分:2)

  

但我得到-1

当未设置响应的Content-Length标头字段时,这是预期的行为。这是后端问题,而不是客户端问题。作为解决方法,您可以显示不确定的ProgressBar(旋转的)而不是确定的