Java HTTPUrlConenction检查服务器是否支持恢复

Java HTTPUrlConenction检查服务器是否支持恢复,java,android,Java,Android,使用HTTPUrlConnection下载文件时,在尝试恢复文件下载之前,是否有方法检查服务器是否支持恢复 要么我做错了什么,要么服务器不支持恢复,我怎么能先检查 File file = new File(Environment.getExternalStorageDirectory()+"/dir/", filename ); if (file.exists()) { crashes here---> //c.set

使用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 Response发现了服务器是否支持resume,并且它支持resume。我不认为这一行会使您的程序崩溃,如果服务器不支持
Range
标头,它只会忽略它


对于这个问题,您可能需要发出一个额外的连接并检查响应头
接受范围
,如果它的值是
字节
,您很幸运它支持
范围
请求头,如果它是
,那么就不要尝试它。

我认为这行不会使您的程序崩溃,如果服务器不支持
范围
头,它将直接忽略它


对于这个问题,您可能需要发出一个额外的连接并检查响应头
接受范围
,如果它的值是
字节
,您很幸运它支持
范围
请求头,如果它是
,则不要尝试它。

我尝试了您所说的,并且值确实是字节,但是,每当我取消对该行的注释时,我会得到一个filenot found异常,该异常与
范围
标题无关,请检查javadoc for FileOutputStream以获取有关该异常的更多信息,boolean)这意味着file.size()有问题,而不是您的连接有问题。我尝试了您所说的,值实际上是字节,但是每当我取消对行的注释时,我都会得到一个filenot found异常,该异常与
范围
标题无关,有关异常的详细信息,请签出javadoc for FileOutputStream,这意味着file.size()有问题,而不是您的连接有问题。