HTTPUrlConnection检查服务器是否支持恢复

时间:2012-03-17 15:06:46

标签: java android

使用HTTPUrlConnection下载文件时,有没有办法在尝试恢复文件下载之前检查服务器是否支持恢复?

要么我做错了,要么服务器不支持简历,我该如何先检查?

 File file = new File(Environment.getExternalStorageDirectory()+"/dir/", filename );
                if (file.exists()) {
          crashes here--->          //c.setRequestProperty("Range", "Bytes="+(file.length())+"-");

                  Log.d("file already exists", filename);
                }
                c.setDoOutput(true);
                c.setDoInput(true);
                c.connect();

                f = new FileOutputStream(new File(PATH_op), true);//set true so if file exists it will append

logcat的

03-17 14:55:23.746: WARN/System.err(11196):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:521)

我发现服务器是否支持简历并且确实如此,我通过检查Nuvaak建议的Accept-Range响应来发现这一点。

1 个答案:

答案 0 :(得分:1)

我不认为该行会使程序崩溃,如果服务器不支持Range标头,它将忽略它。

对于这个问题,您可能需要发出额外的连接并检查响应标头Accept-Ranges,如果其值为bytes,您很幸运它支持Range请求标头,如果它是none,那么不要尝试。