Java: возобновить загрузку в URLConnectionJAVA

Программисты JAVA общаются здесь
Anonymous
Java: возобновить загрузку в URLConnection

Сообщение Anonymous »

Я написал программу, которая загружает некоторые файлы с некоторых серверов.

В настоящее время программа работает нормально.

Но я хочу добавить в нее поддержку резюме.

Я делаю это так, но файл результатов поврежден:

Код: Выделить всё

....

File fcheck=new File(SaveDir+"/"+filename);
if(resumebox.isSelected() && fcheck.exists()){
connection.setRequestProperty("Range", "Bytes="+(fcheck.length())+"-");
}

connection.setDoInput(true);
connection.setDoOutput(true);

BufferedInputStream in = new BufferedInputStream (connection.getInputStream());

pbar.setIndeterminate(false);
pbar.setStringPainted(true);

java.io.FileOutputStream fos ;
if(resumebox.isSelected()){
if(fcheck.exists()){
if(connection.getHeaderField("Accept-Ranges").equals("bytes")){
fos = new java.io.FileOutputStream(SaveDir+"/"+filename,true);
}else{
fos = new java.io.FileOutputStream(SaveDir+"/"+filename);
}
}else{
fos = new java.io.FileOutputStream(SaveDir+"/"+filename);
}
}else{
fos = new java.io.FileOutputStream(SaveDir+"/"+filename);
}

....
Я тестирую его на сервере, который, как я знаю, поддерживает возобновление.

Я скачал несколько байтов. (72720)
Затем попытался возобновить его.

Затем я открыл файл в шестнадцатеричном редакторе. По смещению 72720 повторяются первые байты:

Байты 0-36: FLV. ............«..........onMetaData

Байты 72720–72756: FLV............ .«..........onMetaData

Начинается загрузка с самого начала!

Хотя, когда я делаю это с помощью wget, все работает правильно и ответы по содержимому -Поле диапазона!

Ответы сервера с «302 FOUND» и «206 Partial Content» в журнале wget.

Может ли «302 FOUND» стать причиной проблемы?

В чем проблема?

Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/341 ... connection

Вернуться в «JAVA»