当使用 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
洛格卡特
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 响应发现了这一点。
最佳答案
我认为该行不会使您的程序崩溃,如果服务器不支持 Range
header ,它只会忽略它。
对于这个问题,你可能需要发出一个额外的连接并检查响应头Accept-Ranges
,如果它的值为bytes
,你很幸运它支持Range
请求 header ,如果是none
,则不要尝试。
关于java - HTTPUrlConnection 检查服务器是否支持恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9751045/