如何使用范围标题汇编文件?

时间:2011-05-12 16:52:50

标签: java http range

我使用范围黑客,但没有创建正确的文件。

如果我发送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 个答案:

答案 0 :(得分:2)

请参阅RFC 2616, Section 14.16

  

当HTTP消息包括多个范围的内容时(例如,对多个非重叠范​​围的请求的响应),这些作为多部分消息发送。用于此目的的多部分媒体类型是附录19.2中定义的“多部分/字节范围”。有关兼容性问题,请参阅附录19.6.3。