Как собрать файл, используя заголовок диапазона? - PullRequest
1 голос
/ 12 мая 2011

Я использую диапазон хадеров, но не создаю правильный файл.

если я отправлю Range bytes=0-8999 файл весит 9000 байт и исправно работает. если я отправлю Range bytes=0-8999,9000-9999 файл весит 10213 байта и НЕ правильной работы.

Тип файла mp3.

Что может быть не так?

HttpGet first = new HttpGet("http://cs4832.vkontakte.ru/u50184979/audio/ef64581d913c.mp3");
first.addHeader("Accept-Ranges", "bytes");
first.addHeader("Range", "bytes=0-8999,9000-9999");

//first.addHeader("Accept-Ranges", "bytes");

HttpResponse response = httpclient.execute(first, localContext);


InputStream instream = response.getEntity().getContent();
File f = new File("outFile1.mp3");

OutputStream out = new FileOutputStream(f);
byte buf[] = new byte[1024];
int len;
while ((len = instream.read(buf)) > 0) {
    out.write(buf, 0, len);
}
out.close();
instream.close();

1 Ответ

2 голосов
/ 12 мая 2011

См. RFC 2616, раздел 14.16 :

Когда сообщение HTTP включает в себя содержимое нескольких диапазонов (например, ответ на запрос нескольких непересекающихся диапазонов), они передаются как составное сообщение. Мультимедийный тип мультимедиа, используемый для этой цели, является «multipart / byteranges», как определено в Приложении 19.2. См. Приложение 19.6.3 для получения информации о совместимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...