2012-11-26 73 views
0

的我用下面的代码来下载文件时关闭,我控制下载最新版本的文件

URL url = new URL("http://........"); 
HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
connection.setDefaultUseCaches(false); 
connection.setUseCaches(false); 
connection.setRequestMethod("GET"); 
connection.setDoOutput("true"); 
connection.connect(); 

InputStream in = connection.getInputStream(); 
File dst = new File("......."); 
FileOutputStream out = new FileOutputStream(dst); 
byte[] buffer = new byte[1024]; 
int len = 0; 
while ((len=in.read(buffer))>0) { 
    out.write(buffer,0,len); 
} 

connection.disconnect(); 
in.close(); 
out.close(); 

减去所有必要的尝试,渔获Web服务器。上述代码适用于将文件下载到我的特定目的地。然而,它却无法下载最新版本(例如,如果我更改了网络服务器上的文件内容)

就好像有些东西在保存某种它之前下载的文件的缓存,只要URL与以前一样,它发回相同的文件。我的数据连接在下载过程中变为活动状态,所以这可能是我的服务提供商的情况

我需要的是某种方式来强制我的代码主动刷新目标文件。我发现网络浏览器能够做到这一点。如果我要输入网络浏览器的链接,然后再次运行我的代码,则可以下载最新版本

回答

1

尝试在URL的末尾添加?time=201211261200

+0

没有工作..我目前仍然可以下载,我已经在服务器 –

+0

@Ian低上删除的文件,我发现谷歌黑客攻击,看到更新的答案。 –

+0

这不是随机的,它是固定的,只会帮助一次。 (第一个电话) – RvdK

1

可以在服务器或客户端修复它。

客户端:尝试通过添加随机值来使URL随机。因此总是会下载最新版本。

Random r = new Random(); 
int someValue = r.nextInt(10000); 

"http://someurl" + "?t=" + someValue;