使用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响应来发现这一点。
答案 0 :(得分:1)
我不认为该行会使程序崩溃,如果服务器不支持Range
标头,它将忽略它。
对于这个问题,您可能需要发出额外的连接并检查响应标头Accept-Ranges
,如果其值为bytes
,您很幸运它支持Range
请求标头,如果它是none
,那么不要尝试。