RYN*_*RYN 9 java resume urlconnection
我写了一个程序,从一些服务器下载一些文件.
目前程序正常运行.
但我想为它添加简历支持.
我这样做但结果文件已损坏:
....
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);
}
....
Run Code Online (Sandbox Code Playgroud)
我在我知道支持简历的服务器上测试它.
我下载了一些字节.(72720)
然后试图恢复它.
然后我用Hex编辑器打开文件,在偏移量72720处重复第一个字节:
字节0-36:FLV .............«.......... onMetaData
字节72720-72756:FLV .............«.......... onMetaData
它从头开始下载!
当我通过wget执行它时,它正确执行并通过Content-Range字段进行响应!
服务器响应wget日志中包含"302 FOUND"和"206 Partial Content".
"302 FOUND"会导致问题吗?
问题是什么 ?
谢谢.
NG.*_*NG. 17
尝试:
connection.setRequestProperty("Range", "bytes=" + fcheck.length() + "-");
Run Code Online (Sandbox Code Playgroud)
按规格小写范围说明符.此外,如果您的部分文件是500字节,这意味着您的字节范围是0-499,并且您想要500+.
| 归档时间: |
|
| 查看次数: |
11634 次 |
| 最近记录: |