下载最新版本的文件

时间:2012-11-26 08:26:24

标签: android download httpurlconnection

我正在使用以下代码从我控制的网络服务器下载文件

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();

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

就好像某个东西保留了之前下载的文件的某种缓存,并且只要URL与之前相同,它就会发送回相同的文件。我的数据连接在下载期间变为活动状态,因此我的服务提供商可能就是这种情况

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

2 个答案:

答案 0 :(得分:1)

尝试在网址末尾添加?time=201211261200

答案 1 :(得分:1)

将其修复到服务器或客户端。

客户端:尝试通过添加随机值使URL随机。因此,将始终下载最新版本。

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

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